我是想在 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.
来源: https://blog.csdn.net/Alone_in_/article/details/101274336