js判断字符串中是否包含某个字符串

String 对象的方法

方法一:indexOf() (推荐)

1
2
3
var str = "www.baidu.com";
console.log(str.indexOf("baidu") != -1); // true
// indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。

方法二:search()

1
2
3
var str = "www.baidu.com";
console.log(str.search("baidu") != -1); // true
// search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。

ES6

方法三:includes()

1
2
3
var str = "www.baidu.com";
console.log(str.includes("baidu")); // true
// includes() 方法用于判断一个字符串是否包含在另一个字符串中。如果当前字符串包含被搜寻的字符串,就返回 true;否则返回 false。

RegExp 对象方法

方法四:match()

1
2
3
4
5
6
7
var str = "www.baidu.com";
var reg = RegExp(/baidu/);
if (str.match(reg)) {
// ["baidu", index: 4, input: "www.baidu.com", groups: undefined]
// 包含
}
// match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

方法五:test()

1
2
3
4
var str = "www.baidu.com";
var reg = RegExp(/baidu/);
console.log(reg.test(str)); // true
// test() 方法用于检索字符串中指定的值。返回 true 或 false。

方法六:exec()

1
2
3
4
5
6
7
var str = "www.baidu.com";
var reg = RegExp(/baidu/);
if (reg.exec(str)) {
// ["baidu", index: 4, input: "www.baidu.com", groups: undefined]
// 包含
}
// exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

prototype

1
2
3
4
5
6
7
if (!String.prototype.contains) {
String.prototype.contains = function (arg) {
return !!~this.indexOf(arg);
};
}
var str = "www.baidu.com";
console.log(str.contains("baidu"));