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>
<完>