string.match()
match() 方法將檢索目標字串,以找到乙個或多個與 正規表示式regexp 匹配的文字。match()有兩種情況:
1、如果 regexp 具有標誌 g,則 match() 方法將執行全域性檢索,找到目標字串中的所有匹配子字串。
匹配情況
返回值沒有找到任何匹配的子串
null
找到了乙個或多個匹配子串
乙個陣列。陣列的內容包含所有的匹配子串
下面是個例項:
var str ='xxtest00test11test22test'regexp =new regexp(/(test)(.)/g);
while((result = regexp.exec(str)) !=null)
匹配的結果如下:
返回的匹配陣列:
[testaa,testbb,testcc]
並且陣列不包含其他有關匹配的資訊:
0:testaa
1:testbb
2:testcc
2、如果 regexp 沒有標誌 g,那麼 match() 方法就只能目標字串中執行一次匹配。
匹配情況
返回值沒有找到任何匹配的子串
null
找到了乙個或多個匹配子串
乙個陣列。陣列的內容包含與它找到的匹配文字有關的資訊。該陣列的第0 個元素存放的是匹配文字,而其餘的元素存放的是與正規表示式的子表示式匹配的文字。除了這些常規的陣列元素之外,返回的陣列還含有兩個物件屬性。index 屬性宣告的是匹配文字的起始字元在目標字串中的位置,input 屬性宣告的是對目標字串的引用。
我們把上面例子的全域性標誌g拿掉,regexp = new regexp(/(test)(.)/);再次得到的匹配結果如下:
返回的匹配陣列:
[test0,test,0]
並且陣列包含index和input資訊:
0:test0
1:test
2:0index:2
input:xxtest0test1test2test
不過有一點需要說明的是,在ie6,7,8下,返回的陣列同時包含lastindex資訊,用來表示表示匹配子串的下乙個位置。話說這個屬性應該是在regexp上面的,所以在ie9裡面去掉了。
string.exec()方法:
1、如果 regexp 不具有標誌 g。
匹配情況
返回值沒有找到任何匹配的子串
null
找到了乙個或多個匹配子串
乙個陣列。陣列的內容與呼叫match() 返回的陣列是相同的。
沿用上面的例子:
result = regexp.exec(str);
返回的匹配陣列:
[test0,test,0]
並且陣列包含index和input資訊:
0:test0
1:test
2:0index:2
input:xxtest0test1test2test
同樣,在ie6,7,8下,返回的陣列同時包含lastindex資訊。
2、如果 regexp 具有標誌 g。
它會在 regexp的 lastindex 屬性指定的字元處開始檢索。當 exec() 找到了與表示式相匹配的文字時,在匹配後,它將把regexp的 lastindex 屬性設定為匹配文字的最後乙個字元的下乙個位置。這就是說,可以通過反覆呼叫 exec() 方法來遍歷字串中的所有匹配文字。當 exec() 再也找不到匹配的文字時,它將返回 null,並把 lastindex 屬性重置為 0。
注:無論 regexpobject 是否是全域性模式,exec() 都會把完整的細節新增到它返回的陣列中。這就是 exec() 與 match() 的不同之處,後者在全域性模式下返回的資訊要少得多。如果要獲得所有的匹配細節,就可以在全域性模式下迴圈呼叫exec()方法。
類似:
var str ='xxtest00test11test22test'regexp =new regexp(/(test)(.)/g);
while((result = regexp.exec(str)) !=null)
js 正規表示式匹配中文
簡單匹配中文方法 u0000 u00ff 匹配非單位元組字元 另錯誤方法 u00 uff 匹配 非單位元組字元 還包括一些全半形符號如,等 還有vwxyz字元 說明 u0000 u00ff.包含unicode單位元組編碼 0 255編碼 包含基本控制字元和拉丁文本母。採用該否定表示式,粗略判斷是否含...
JS 正規表示式匹配獲取
表示轉義字元 表示乙個任意字元 表示字元個數 表示字元個數 表示開始與結束 表示非 d表示 1個數字 w 表示乙個字元 不包含中文 s 表示乙個空白字元 表示優先順序,提取組 表示或 方式一 var regobj new regexp d 方式二 var regobj d 推薦使用第二種方式,這種方...
JS正規表示式詳解01
查詢符合條件的乙個字串的位置,找不到返回 1 abc search b return 1 abc search d return 1 abcabc search b g return 1 查詢符合條件的字串,並進行替換,找不到不進行替換 abcabc replace b 2 return a2cab...