JavaScript 提供了很多方法可以檢查字串是否包含子字串。在這篇文章中,我們將學習到一個最常見、最推薦的做法,同時也會介紹其他一些方法。

檢查字串是否包含子字串是任何程式語言中最常見的任務之一。

JavaScript 提供了不同的方法來執行這個操作。

最簡單、也是最推薦的方法是使用字串的 includes() 方法:

'a nice string'.includes('nice') //true

這個方法在 ES6/ES2015 中被引入。

除了 Internet Explorer 外,現代瀏覽器都支援這個方法:

includes 方法的瀏覽器支援性

如果要在所有瀏覽器上使用這個方法,可以使用 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