Bootstrap

JavaScript 判断字符串是否包含子字符串的几种方法

JavaScript 判断字符串是否包含子字符串,不要只知道 indexOf() ,还可以尝试一下其他写法。

方法 1: 使用 includes()

const str = "Hello, world!";
const substr = "world";

if (str.includes(substr)) {
    console.log("包含");
} else {
    console.log("不包含");
}

【注】简洁直观,适用于 ES6 及更高版本。


方法 2: 使用 indexOf()

const str = "Hello, world!";
const substr = "world";

if (str.indexOf(substr) !== -1) {
    console.log("包含");
} else {
    console.log("不包含");
}

【注】兼容性更好,适用于旧版本的 JavaScript。


方法 3: 使用正则表达式

const str = "Hello, world!";
const substr = "world";

if (new RegExp(substr).test(str)) {
    console.log("包含");
} else {
    console.log("不包含");
}

【注】可用于复杂的模式匹配,不仅限于简单字符串。


方法 4: 使用 search()

const str = "Hello, world!";
const substr = "world";

if (str.search(substr) !== -1) {
    console.log("包含");
} else {
    console.log("不包含");
}

【注】类似 indexOf,支持正则表达式。

方法 5: 用 startsWith() 或 endsWith()

如果你只需要判断字符串是否以某个子字符串开头或结尾:

const str = "Hello, world!";
const start = "Hello";
const end = "world!";

if (str.startsWith(start)) {
    console.log("字符串以 'Hello' 开头");
}

if (str.endsWith(end)) {
    console.log("字符串以 'world!' 结尾");
}

【注】专用于判断起始或结束部分,代码更语义化。

推荐使用

  • 如果只需简单判断子字符串,推荐 includes()
  • 如果需要兼容旧浏览器,可以使用 indexOf()
  • 正则表达式适合更复杂的匹配需求。
;