正則--基礎知識整理筆記之一
阿新 • • 發佈:2021-10-23
正則表示式是區分大小寫的
:r[^abc]r //匹配出rar,rbr,rcr之外的任意r*r文字
.
匹配任意字元的字元組簡便寫法
例如:.a//匹配Aa1aga等等
|
或多選分支選擇兩者中的一個注意|將左右兩邊分為兩部分,而不管左右兩邊有多長多亂
例如:gray|grey//既可匹配gray又可匹配grey相當於gr[ae]y
\
轉義符它的作用是使元字元失去它的意義,僅僅代表其日常輸入中字元的意義。
例如,我要匹配字元.字元* 就需要在前面加反斜槓,\. \*去除它元字元的含義。
一些需要轉義的字元列表。 \*+?|{[()^$.#和空白
一、定義
1.建構函式 varreg=newRegExp('ab','g'); 2.字面量 varreg=/ab/g;- g:global,全文搜尋,預設搜尋到第一個結果接停止
- i:ingorecase,忽略大小寫,預設大小寫敏感
- m:multiplelines,多行搜尋
二、預定義特殊字元
字元 | 含義 |
\t | 水平製表符 |
\r | 回車符 |
\n | 換行符 |
\f | 換頁符 |
\cX | 與X對應的控制字元(Ctrl+X) |
\v | 垂直製表符 |
\0 | 空字元 |
三、預定義類
字元 | 等價類 | 含義 |
. | [^\n\r] | 除了回車符和換行符之外的所有字元 |
\d | [0-9] | 數字字元 |
\D | [^0-9] | 非數字字元 |
\s | [\t\n\x0B\f\r] | 空白符 |
\S | [^\t\n\x0B\f\r] | 非空白符 |
\w | [a-zA-Z_0-9] | 單詞字元(字母、數字、下劃線) |
\W | [^a-zA-Z_0-9] | 非單詞字元 |
四、邊界
字元 | 含義 |
^ | 以xx開頭 |
$ | 以xx結尾 |
\b | 單詞邊界,指[a-zA-Z_0-9]之外的字元 |
\B | 非單詞邊界 |
五、前瞻
表示式 | 含義 |
exp1(?=exp2) | 匹配後面是exp2的exp1 |
exp1(?!exp2) | 匹配後面不是exp2的exp1 |
- 字元組
- 方法
var reg=/\d+\.\d{1,2}$/g; reg.test('123.45'); //true reg.test('0.2'); //true reg.test('a.34'); //false reg.test('34.5678'); //false
exec() 檢索字串中指定的值。返回找到的值,並確定其位置。 返回一個數組,其中存放匹配的結果。如果未找到匹配,則返回值為null。 重要事項:如果在一個字串中完成了一次模式匹配之後要開始檢索新的字串,就必須手動地把lastIndex屬性重置為0。
var reg=/\d/g; var r=reg.exec('a1b2c3'); console.log(r) // ["1", index: 1, input: "a1b2c3"] console.log(reg.lastIndex); //2 r=reg.exec('a1b2c3'); console.log(r) // ["2", index: 3, input: "a1b2c3"] console.log(reg.lastIndex); //4 r=reg.exec('a1b2c3'); console.log(r) // ["3", index: 5, input: "a1b2c3"] console.log(reg.lastIndex); //6
index屬性宣告的是匹配文字的第一個字元的位置。 input屬性則存放的是被檢索的字串string。 lastIndex:正則表示式開始下一次查詢的索引位置,第一次的時候總是為0的,第一次查詢完了的時候會把lastIndex的值設為匹配到得字串的最後一個字元的索引位置加1,第二次查詢的時候會從lastIndex這個位置開始,後面的以此類推。如果沒有找到,則會把lastIndex重置為0。要注意的是,lastIndex屬性只有在有全域性標誌正則表示式中才有作用。如果我們把下面程式碼中正則表示式的g標誌去掉,那麼三次彈出的就都是true了。
var regexp = /abcd/g; var str = 'abcdefg'; alert(regexp.test(str)); //true alert(regexp.test(str)); //false alert(regexp.test(str)); //true
注意:字串的正則方法裡lastIndex屬性是不起作用的,不管正則模式是不是全域性的。lastIndex屬性只在正則表示式物件的全域性標誌下起作用。