遇到的问题:
最近在做项目的时候,要判断一个字符(字符串)是否在另一个字符串中。可是,我只记得一个indexOf并不能满足我的需求。还有其他什么方法呢?
解决思路:
查询js的属性或方法,重新学习一下。
于是,总结了以下几种方法:
一、indexOf():可返回某个指定的字符串值在另一个字符串中首次出现的位置。如若没有,则返回-1。
var str = "zhangsan"
console.log(str.indexOf("ang")); // 2
console.log(str.indexOf("x")); // -1
console.log(str.indexOf("zhang") != -1); // true
二、match():可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var str = "123"
var reg = RegExp(/3/);
if(str.match(reg)){ //包含;
console.log('ok') //ok
}
三、search():用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
var str = "123"
console.log(str.search("2") != -1); // true
console.log(str.search("5")); // -1
四、test():用于检索字符串中指定的值。返回 true 或 false。
var str = "123"
var reg = RegExp(/3/);
console.log(reg.test(str) != -1); // true
五、test():用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
var str = "123"
var reg = RegExp(/3/);
if(reg.exec(str)){ //包含;
console.log('ok'); //ok
}
var reg2 = RegExp(/5/);
reg2.exec(str); //null