[Js 正则表达式:exec, match, test的区别]


1. 创建正则表达式字面量,加上^和$,与不加是有区别的(对于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,尽管字符串中有符合要求的内容))

2. macth的调用对象是字符串,exec和test的调用对象是regx

3. 如果你仅仅想在字符串中搜索,那么请不要加开始和结束限定符

4. regx的exec方法会每次返回1个匹配,如果不为空就进行下一次查找,因此可以使用while循环来写

5. macth返回1个匹配的数组,test返回字符串中是否包含指定的模式,exec返回字符串中该模式,并将下一次开始查找的位置保存在lastIndex属性中。
例:

<head runat="server">
    <title></title>
    <script type="text/javascript">
        window.onload = function () {
            var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
            var regexp = /[A-E]/gi;

            var rs = str.match(regexp);
            console.log(rs);

            regexp = /[A-E]/gi;
            rs = regexp.test(str);
            console.log(rs);

            regexp = /[A-E]/gi;
            while ((rs = regexp.exec(str)) != null)
            {
                document.write(rs);
                document.write(regexp.lastIndex);
                document.write("<br />");
            }
        };
    </script>
</head>

 

<完>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM