我是想在js中判断字符串是否包含某个中文,将方法记录起来,这些方法也适用于数字、字母。实践是检验真理的唯一标准,还是要多多测试啊。

String对象的方法

方法一:indexOf()

var groupName="小白A组";
alert('groupName.indexOf() =' + (groupName.indexOf("组") != -1));  //true

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

方法二: search() 

var groupName="小白A组";
alert('groupName.search()=' + (groupName.search("组") != -1));  //true

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

方法三:match()

var groupName="小白A组";
var reg = RegExp(/组/);
alert('groupName.match(reg)=' + (groupName.match(reg)));  //组

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。但你有木有发现打印出来的是 ‘ 组 ’ ,如果是在字符串中找不到的话打印 null ,神奇的是可以把它放在 if 里面做判断,如下:

var str="123";
var reg3 = RegExp(/3/);
if(str.match(reg3)){
    alert(true);
}

方法五也是一样的道理。 

RegExp 对象方法

方法四:test() 

var groupName="小白A组";
var reg = RegExp(/组/);
alert('reg.test(groupName)=' + (reg.test(groupName)));  //true

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

方法五:exec()

var groupName="小白A组";
var reg = RegExp(/组/);
alert('reg.exec(groupName)=' + (reg.exec(groupName)));  //组

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