JS正则表达式学习之路:(三)RegExp对象

来源:互联网 发布:奥飞游戏 知乎 编辑:程序博客网 时间:2024/06/06 07:30

3.1 RegExp属性

       1.source:一个只读的字符串,包含正则表达式的文本。

       2.global:一个只读的布尔值,用以说明这个正则表达式是否带有修饰符g。

       3.ingoreCase:一个只读的布尔值,用以说明这个正则表达式是否代用修饰符i。

       4.multiline:一个只读的布尔值,用以说明这个正则表达式是否带有修饰符m。

       5.lastIndex:一个可读写的整数,。如果匹配模式带有g修饰符,这个属性存储在整个字符串中下一次检索的开始位置,这个属性会被exec()和test()方法用到。

        (好吧,看到最后我也没看懂这些属性到处要干些什么,只是稍微知道一些lastIndex的用法~_~)

3.2 RegExp方法

  3.2.1 exec()方法

       RegExp最主要的执行模式匹配方法是exec(),它与String方法的match()相似。只是RegExp方法的参数是一个字符串,而String方法的参数是一个RegExp对象。

       exec()方法对一个指定的字符串执行一个正则表达式,简言之,就是在一个字符串中执行了匹配检索。如果它没有找到任何匹配,它就会返回null,但如果它找到了一个匹配,它将返回一个数组,就像match()方法为非全局检索返回的数组一样。

       当调用exec()的正则表达式对象具有修饰符g时,它将把当前正则表达式对象的lastIndex属性设置为紧挨着匹配子串的字符位置。当同一个正则表达式第二次调用exec()时,它将从lastIndex属性所指示的字符处开始检索。如果exec()没有发现任何匹配结果,它会将lastIndex重置为0。例如,

       var pattern = /Java/g;

       var text = "JavaScript is more fun than Java";

       while((result = pattern.exec(text)) != null) {

            alert("Matched '" + result[0] + "'"

              + " at position " + result.index

              + "; next search begins at " + pattern.lastIndex);

       }

       弹出两次对话框,分别是

       Matched 'Java' at position 0; next search begins at 4;

       Matched 'Java' at position 28; next search begins at 32;

 

  3.2.1 test()方法

       它的参数是一个字符串,用test()对某个字符串进行检测,如果包含正则表达式的一个匹配结果,则返回true;

       var pattern = /java/i;

       pattern.test("JavaScript");              //返回true

0 0
原创粉丝点击