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

String对象的方法

方法一:indexOf(searchvalue,start) (推荐)

1
2
var str = "123";
console.log(str.indexOf("3") !== -1 ); // true

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。

方法二:search(searchvalue)

1
2
var str = "123";
console.log(str.search("3") !== -1 ); // true

search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。

方法三:match(regexp)

1
2
3
4
5
var str = "123234356";
var reg1 = RegExp(/3/);
var reg2 = RegExp(/3/g);
console.log(str.match(reg1)); // ["3"]
console.log(str.match(reg2)); // ["3", "3", "3"]

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。(返回匹配结果的数组)

RegExp 对象方法

方法四:test()

1
2
3
var str = "123";
var reg = RegExp(/3/);
console.log(reg.test(str)); // true

test() 方法用于检索字符串中指定的值。返回 true 或 false。

方法五:exec()

1
2
3
4
5
var str = "123";
var reg1 = RegExp(/3/);
var reg2 = RegExp(/3/g);
console.log(reg.exec(str1)); //["3"]
console.log(reg.exec(str2)); //["3"]

exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

exec() 和 match() 区别:

  • exec是正则表达式的方法,它的参数是字符串;match是字符串执行匹配正则表达式规则的方法,他的参数是正则表达.
  • exec与全局是否定义无关系,而match则于全局相关联,当定义为非全局,两者执行结果相同
海盗船长 wechat
扫码关注我的公众号哟
0%