JavaScript 提供了很多方法可以檢查字串是否包含子字串。在這篇文章中,我們將學習到一個最常見、最推薦的做法,同時也會介紹其他一些方法。
檢查字串是否包含子字串是任何程式語言中最常見的任務之一。
JavaScript 提供了不同的方法來執行這個操作。
最簡單、也是最推薦的方法是使用字串的 includes()
方法:
'a nice string'.includes('nice') //true
這個方法在 ES6/ES2015 中被引入。
除了 Internet Explorer 外,現代瀏覽器都支援這個方法:
如果要在所有瀏覽器上使用這個方法,可以使用 Polyfill.io 或其他專用的 polyfill。
includes()
方法還接受可選的第二個參數,即起始搜尋的位置:
'a nice string'.includes('nice') //true
'a nice string'.includes('nice', 3) //false
'a nice string'.includes('nice', 2) //true
ES6 之前的 includes()
替代方法:indexOf()
在 ES6 之前,檢查字串是否包含子字串的常見方法是使用 indexOf()
,這是一個字串方法,如果字串中不包含指定子字串,則返回 -1。如果找到子字串,則返回子字串的起始索引。
和 includes()
一樣,第二個參數可以指定起始搜尋的位置:
'a nice string'.indexOf('nice') !== -1 //true
'a nice string'.indexOf('nice', 3) !== -1 //false
'a nice string'.indexOf('nice', 2) !== -1 //true