[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