30秒学会 JavaScript 片段 · 2022年7月23日

30秒学会 JavaScript 片段 – Check if a string contains a substring in JavaScript

String.prototype.includes()

The most straightforward substring search option is String.prototype.includes(), introduced in ES6. It’s a simple method that returns a boolean value depending on whether the string contains the substring or not.

代码实现

const str = 'Hello world';
str.includes('world'); // true
str.includes('foo'); // false

String.prototype.indexOf()

Another option is String.prototype.indexOf(), which can be preferable if you need to support legacy browsers. As this methods returns the index of the first occurrence of the substring, you need to compare it to -1 to know if the substring was found or not.

使用样例

const str = 'Hello world';
str.indexOf('world') !== -1; // true
str.indexOf('foo') !== -1; // false

Case-insensitive substring search

Both methods presented so far are case-sensitive. If you need to search for a substring that is case-insensitive, you can use String.prototype.toLowerCase() to convert both strings to lowercase. Then you can compare them, using any of the previous methods.

const str = 'Hello world';
const token = 'WORLD';
str.toLowerCase().includes(token.toLowerCase()); // true

翻译自:https://www.30secondsofcode.org/js/s/string-contains-substring