上一篇《通过纯CSS3,无需JavaScript,实现移动终端常用的圆周布局弹出式菜单,支持多终端屏幕》介绍了一个支持多终端的弹出式圆形菜单的制作。本篇将介绍在JavaScript中判断字符串是否包含子串的常用的五种方法。

JavaScript中五种常用的判断字符串中是否包含某字符或字符串的方法及比较(JavaScript中五种常用的判断字符串中是否包含某字符或字符串的方法及比较)(1)

五种判断方法

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属性中。

  • ,