javascript的exec方法用於檢索字串中的正規表示式的匹配,其使用語法是“RegExpObject.exec(string)”,參數string表示要檢索的字串。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
JavaScript exec() 方法
exec() 方法用於檢索字串中的正規表示式的匹配。
語法
RegExpObject.exec(string)
參數
string 必要。要檢索的字串。
傳回值
傳回一個數組,其中存放匹配的結果。如果未找到匹配,則傳回值為 null。
說明
exec() 方法的功能非常強大,它是一個通用的方法,而且使用起來也比test() 方法以及支援正規表示式的String 物件的方法更為複雜。
如果 exec() 找到了符合的文本,則傳回一個結果陣列。否則,傳回 null。此數組的第0 個元素是與正規表示式相符的文本,第1 個元素是與RegExpObject 的第1 個子表達式相符的文本(如果有的話),第2 個元素是與RegExpObject 的第2 個子表達式相符的文字(如果有的話),以此類推。除了陣列元素和 length 屬性之外,exec() 方法還會傳回兩個屬性。 index 屬性宣告的是符合文字的第一個字元的位置。 input 屬性則存放的是被檢索的字串 string。我們可以看得出,在呼叫非全域的 RegExp 物件的 exec() 方法時,傳回的陣列與呼叫方法 String.match() 傳回的陣列是相同的。
但是,當 RegExpObject 是一個全域正規表示式時,exec() 的行為就稍微複雜一些。它會在 RegExpObject 的 lastIndex 屬性指定的字元處開始檢索字串 string。當 exec() 找到了與表達式相符的文字時,在匹配後,它將把 RegExpObject 的 lastIndex 屬性設定為匹配文字的最後一個字元的下一個位置。這就是說,您可以透過重複呼叫 exec() 方法來遍歷字串中的所有符合文字。當 exec() 再也找不到符合的文字時,它將傳回 null,並把 lastIndex 屬性重設為 0。
【推薦學習:js基礎教學】
提示與註解
重要事項:如果在一個字串中完成了一次模式比對之後要開始檢索新的字串,就必須手動地把lastIndex 屬性重設為0。
提示:請注意,無論 RegExpObject 是否是全域模式,exec() 都會把完整的細節加入到它傳回的陣列中。這就是 exec() 與 String.match() 的不同之處,後者在全域模式下傳回的資訊要少得多。因此我們可以這麼說,在循環中反覆地呼叫 exec() 方法是唯一一種獲得全域模式的完整模式匹配資訊的方法。
實例
在本例中,我們將全域擷取字串中的 W3School:
<script type="text/javascript"> var str = "Visit W3School"; var patt = new RegExp("W3School","g"); var result; while ((result = patt.exec(str)) != null) { document.write(result); document.write("<br />"); document.write(patt.lastIndex); } </script>
輸出:
W3School 14
以上是javascript的exec方法怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!