您好,登錄后才能下訂單哦!
小編給大家分享一下regExp中test方法取得值變化的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1、JavaScript 正則表達式對象RegExp的test方法,用于檢測一個字符串是否匹配某個模式。
字面量定義RegExp對象:var re = /pattern/attributes,其中attributes可以是g,i,m;
閱讀以下程序:
<script type="text/javascript"> var str = 'abc123'; var re = /^abc/g ; var result1 = re.test(str); var result2 = re.test(str); var result3 = re.test(str); document.write('result1:' + result1 + '<br/>'); document.write('result2:' + result2 + '<br/>'); document.write('result3:' + result3); </script>
我們會認為打印結果應該是true;true;true;
而實際情況卻是true;false;true;
2、為什么第二個結果是false?
發現RegExp對象有一個lastIndex的屬性,如果使用了全局修飾符,那么執行test方法后,lastIndex就會記錄匹配的字符串在原始字 符串中最后一位的索引加一,例如執行了var result1 = re.test(str)后lastIndex為3(document.write('re.lastindex:' + re.lastIndex+ '<br/>');),如果沒有發現匹配lastIndex置為0。當下次再執行時,對給定的字符串匹配不是從開頭位置,而是要依據lastIndex提供的位置,由于這個原因,所以導致上例中result2的值為false。
3、處理方法:去除g;
即:var re = /^abc/g ;變為 var re = /^abc/;
以上是“regExp中test方法取得值變化的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。