reg.test():匹配 reg.exec():捕獲
^:以...作為開頭
$:以...作為結尾
\: 表示轉義,有特殊意義轉為普通意義 ,
\d:匹配任意乙個非\n數字(只能是乙個數字)
\w:匹配數字字母下劃線
\b:匹配邊界(注意:開頭 結尾 空格 換行 都是邊界)
\n:匹配換行
\s:匹配乙個空白符(通常都是空格和換行)
*:出現0次或者多次
+:出現1次或者多次
?:出現0次或者1次
:出現n次
:至少出現n次
:出現次數在n到m次
例:匹配手機號:/^1\d$/ 匹配零點幾的小數:/^0\.+$/
/x|y/:x或者y中的任意乙個
/[a-z]/:a-z中任意乙個 (注意 - 的左右問題,要按順序!)
/[^xyz]/:除了xyz中任意乙個字元( ^ 與 [ ] 搭配表示 除了)
正規表示式捕獲的懶惰性:在找到乙個匹配的內容時,就停止了捕獲查詢
解決懶惰性的方法:給正規表示式加乙個全域性修飾符g。雖然解決了懶惰性,但是exec一次只能捕獲一次,所以只能一次一次的進行捕獲,直到結果為null,就全部捕獲到想要的內容。
var reg=/a\d/g;
var str="aaaaa1ba25555a3";
// console.log(reg.exec(str));
// console.log(reg.exec(str));
// console.log(reg.exec(str));
// console.log(reg.exec(str));
我們可以自己寫乙個while迴圈把捕獲到的內容都放到乙個陣列中:
var ary=;
var val=reg.exec(str);
while (val)
console.log(ary);
在字串中提供了match方法,可以一次性捕獲到所有符合條件的內容:
var reg=/\d/g;
var str="js12css34html56";
console.log(str.match(reg)); //["12", "34", "56"]
如果想單獨捕獲到內容,可以使用小括號將需要捕獲到的內容括起來,不過不想捕獲到某部分內容,可以在小括號中最前面加入?:即可 (?: )
var str = "html:1000+css:1000+js:10000+vue:1000+react:1000+node:1000";
var reg = /(?:^|\+)([a-z]:(\d+))/g;
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
console.log(reg.exec(str));
注意:正則加上g,使用match方法不會捕獲到分組內容
正則捕獲的貪婪性:當出現量詞元字元時,按照最大長度來捕獲內容,要想解決貪婪性,在量詞元字元後面加乙個?即可
//貪婪性
var reg = /\d+/g;
console.log(reg.exec("123asdfgh45d4567d"));//123
console.log(reg.exec("123asdfgh45d4567d"));//45
console.log(reg.exec("123asdfgh45d4567d"));//4567
var reg = /\d+?/g;
console.log(reg.exec("123asdfgh45d4567d")); //1
console.log(reg.exec("123asdfgh45d4567d")); //2
console.log(reg.exec("123asdfgh45d4567d")); //3
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...