標籤:
基本概念:所謂Regex就是用某種模式去匹配一類字串的一個公式。
Regex建立:
var regExp=/Regex/gi[flag] (隱式建立)
var regExp=new regExp(Regex,”gi”); (顯示建立)
flag ---->g全域標誌
i忽略大小寫
m用作多行標誌
RegExp對象的屬性:
RegExp對象屬性分為靜態屬性和執行個體屬性,所謂靜態屬性是指可以通過RegExp訪問,執行個體屬性是指通過RegExp對象執行個體才能訪問使用。
靜態屬性:
1、index 是當前運算式模式最初相符內容的開始位置,從0開始計數。其初始值為-1,每次匹配成功時,index屬性都會隨之改變。
2、lastindex 是當前運算式模式最初相符內容中最後一個字元的下一個位置。
3、input 返回當前所作用的字串。
4、 leftContext 是當前運算式模式最後一個匹配字串左邊的所有內容。
5、rightContext 是當前運算式模式最後一個匹配字串右邊的所有內容。
js的exec()函數:
用法:用於檢索字串中Regex的匹配。
文法:RegExpObject.exec(string) //string是要檢索的字串
傳回值:返回一個數組,其中存放匹配的結果。如果未找到匹配,則返回null。
說明:
如果 exec() 找到了匹配的文本,則返回一個結果數組。否則,返回 null。此數組的第 0 個元素是與Regex相匹配的文本,第 1 個元素是與 RegExpObject 的第 1 個子運算式相匹配的文本(如果有的話),第 2 個元素是與 RegExpObject 的第 2 個子運算式相匹配的文本(如果有的話),以此類推。除了數組元素和 length 屬性之外,exec() 方法還返回兩個屬性。index 屬性聲明的是匹配文本的第一個字元的位置。input 屬性則存放的是被檢索的字串 string。
當 RegExpObject 是一個全域Regex時,exec() 的行為就稍微複雜一些。它會在 RegExpObject 的 lastIndex 屬性指定的字元處開始檢索字串 string。當 exec() 找到了與運算式相匹配的文本時,在匹配後,它將把 RegExpObject 的 lastIndex 屬性設定為匹配文本的最後一個字元的下一個位置。這就是說,您可以通過反覆調用 exec() 方法來遍曆字串中的所有匹配文本。當 exec() 再也找不到匹配的文本時,它將返回 null,並把 lastIndex 屬性重設為 0。
如:
RegExp=/\d{4}/gi;
res=RegExp.exec(“we3456s”);
res.index=2; //匹配串的開始位置
res.lastIndex=6; //檢索下一個匹配串的開始位置
RegExp的lastIndex的初始值為0,每找到一個匹配的串就修改一次lastIndex的值為當前匹配串的下一個字元位置。如果在一個字串中完成了一次模式比對之後要開始檢索新的字串,就必須手動地把 lastIndex 屬性重設為 0。
jsRegex