關於正則中test方法引發的問題 需要大家注意

2021-10-01 16:39:35 字數 1387 閱讀 2083

匹配只允許輸入字母,數字,下劃線的正規表示式:

var reg = /^[a-za-z_0-9]+$/g

匹配過程中遇到了一些問題

問題1.其中 /g和非/g的區別

g是global的縮寫啊!

就是匹配全部可匹配結果,

如果你不帶g,在正則過程中,字串是從左至右匹配的,如果匹配成功就不再繼續向右匹配了,如果你帶g,它會重頭到尾的把正確匹配的字串挑選出來

例如:varstr ='aaaaaaaa'

varreg1 = /a/

varreg2 = /a/g

str.match(reg1)// 結果為:["a", index: 0, input: "aaaaaaaa"]

str.match(reg2)// 結果為:["a", "a", "a", "a", "a", "a", "a", "a"]

問題2:

下邊是列印出的問題:首先確信正則一點問題沒有,那為什麼加g和不加g匹配結果會不一樣呢?

原因是:

有興趣的朋友可以自己試一下,這是**:

var reg = /^[a-za-z_0-9]+$/g

var str = 'a_555_';

console.log(reg.test(str));

str = 'a555';

console.log(reg.test(str));

str = 'aaa_55***5';

console.log(reg.test(str));

str = 'aaa_555';

console.log(reg.test(str));

str = 'aa555';

console.log(reg.test(str));

str = 'aa';

console.log(reg.test(str));

str = 'a';

console.log(reg.test(str));

str = '5';

console.log(reg.test(str));

正規表示式的test方法應用

一 test介紹 返回乙個boolean值,指出在被查詢的字串中是否存在模式。語法 rgexp.test str rgexp 必選項。包含正規表示式模式或可用標誌的正規表示式物件。str 必選項。要在其上測試查詢的字串。說明 test方法檢查在字串中是否存在乙個模式,如果存在則返回true,否則就返...

正規表示式的test方法應用

一 test介紹 返回乙個boolean值,指出在被查詢的字串中是否存在模式。語法 rgexp.test str rgexp 必選項。包含正規表示式模式或可用標誌的正規表示式物件。str 必選項。要在其上測試查詢的字串。說明 test方法檢查在字串中是否存在乙個模式,如果存在則返回true,否則就返...

關於python轉義字元在正則匹配中的問題研究

首先看乙個問題 import re text r 學 print text zz r 學 result re.findall zz,text print result 輸出 學 學 為什麼沒有匹配到反斜槓?轉義 首先要理解乙個概念,python中內建的語法字元竄中有一些特殊的符號,那就是 被成為轉義...