正規表示式是使用單個字串來描述、匹配一系列符合某個句法規則的字串。
在很多文字編輯器中,正規表示式通常被用來檢索、替換符合某個模式的文字。
前端中正規表示式有很多應用如:
- 驗證郵箱,
- 身份證號,
- 密碼強度
- qq號碼
內容形式
含義示例
n?指定字元出現0次或1次
n*指定字元出現0次或多次
n+指定字元出現1到多次
n指定出現的確切字數hn
指定出現的次數》=x且<=yabn
指定出現的次數》=x
[abcd]
匹配多個之一
[^abcd]
不允許出現多個之一
[0-9]
相當於[0123456789]
[a-z]
匹配任意乙個小寫字母
[a-z]
匹配任意乙個大寫字母
[a-z]
匹配任意大小寫字母,以及[ \ ] ^ _ `
[a-za-z]
匹配任意乙個大小寫字母
表示式1|表示式2
匹配兩個表示式其中之一
注意:只匹配乙個字元;而|匹配是乙個完整的表示式
(表示式)
使用()建立乙個子表示式/表示式小分組。注意:每個()建立的分組會自動分配乙個從1開始的編號,在正規表示式中想引用某個分組的值使用「\編號」,在正規表示式的外部想引用某個分組的值使用「$編號」
/(ab)(cd)(ef)/分組ab的編號為1,分組ef的編號為3
\d匹配任意乙個數字(decimal)
/\d/ <=> /[0-9]/
\d匹配任意乙個非數字字元
/\d/ <=> /[^0-9]/
\w匹配任意乙個單詞字元(word),如大小寫字母、數字、_
/\w/ <=> /[a-za-z0-9_]/
\w匹配任意乙個非單詞字元
/\w/ <=> /[^a-za-z0-9_]/
\s匹配任意個空白字元(space)
/\s/ <=> /[ \n\t\r]/
\s匹配任意個非空白字元
/\s/ <=> /[^ \n\t\r]/
.匹配除了換行和回車之外的任意乙個字元
/./ <=> /[^\n\r]/
上面的匹配符都是「字元匹配符」
下面的匹配符都是「位置匹配符」,匹配字串中的特定位置
內容形式
含義示例
^匹配字串的開頭
/^a/
$匹配字串的結尾
/a$/
\b匹配單詞的邊界(boundary)
/\bis\b/
\b匹配非單詞邊界
/\bis\b/
?=x匹配後面緊跟指定字元x的字串,注意:匹配的結果中不包x
/do(?=not)/
?!x匹配後面沒有緊跟指定字元x
/do(?!not)/
正規表示式的定義:
- (1)var patt1 = /表示式/特性;
- (2)var patt2 = new regexp(『表示式』, 『特性』);
正規表示式的使用:
- (1) patt.test( str ); //用正規表示式物件檢索字串物件
- (2) str.replace( patt ); //呼叫string的方法,把正規表示式物件作引數
正規表示式中的特性修飾符:
var regexp = /表示式/特性修飾符 ;
特性修飾符可以取下列的乙個或多個:
(1)iignorecase,匹配時忽略大小寫
(2)gglobal,全域性匹配,預設情況下所有的匹配僅進行一次;若宣告了全域性匹配,則可以把所有的匹配情形全部找出來
(3)mmultiline,執行多行匹配,m只對^和位置
匹配符有
影響,默
認情況下
,不執行
多行匹配
,即預設
情況下:
只匹配字
符串的開
頭;只匹配字串的結尾
若宣告了m: ^可以匹配每一行的開頭;$匹配每一行的結尾
我的正規表示式筆記
匹配 任意字元,任意長度 替換 name new formentity 規則名稱 rulename detail new formentity 規則描述 ruledec 成 name detail 正規表示式為 new formentity 示例2 正規表示式為 將 前面的 都替換掉。正規表示式為 ...
正規表示式學習筆記
正規表示式學習日記 1 為萬用字元,表示任何乙個字元,例如 a.c 可以匹配 anc abc acc 2 在內可以指定要求匹配的字元,例如 a nbc c 可以匹配 anc abc acc 但不可以匹配 ancc a到z可以寫成 a z 0到9可以寫成 0 9 3 數量限定符號,表示匹配次數 或者叫...
正規表示式學習筆記
字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...