上一篇《通过纯CSS3,无需JavaScript,实现移动终端常用的圆周布局弹出式菜单,支持多终端屏幕》介绍了一个支持多终端的弹出式圆形菜单的制作。本篇将介绍在JavaScript中判断字符串是否包含子串的常用的五种方法。
五种判断方法
1、indexOf方法
代码:
var str = "abc";
if (str.indexOf("bc") != -1) {}
2、search方法
代码:
var str = "abc";
if (str.search("bc") != -1) {}
3、test方法
代码:
var str = "abc";
var reg = new RegExp("^.*bc.*$");
if (reg.test(str)) {}
4、match方法
创建正则表达式字面量,加上^和$,与不加是有区别的。
对于test方法,存在比正则多的字符的时候,依然返回比较成功true,这与我们仅仅想比较内容符合预期的要求是相背离的。比如:
var regx = /\d{1,2}\/\d{1,2}\/\d{4}/gi; regx.test('08/08/2014 5');//会返回true,因为字符串中包含符合要求的串。
match也可以获得匹配的内容,而regx.exec('08/08/2014 2')就会返回null,尽管字符串中有符合要求的内容。
macth的调用对象是字符串,exec和test的调用对象是regx
如果你仅仅想在字符串中搜索,那么请不要加开始和结束限定符
regx的exec方法会每次返回1个匹配,如果不为空就进行下一次查找,因此可以使用while循环来写
, macth返回1个匹配的数组,test返回字符串中是否包含指定的模式,exec返回字符串中该模式,并将下一次开始查找的位置保存在lastIndex属性中。