正規表示式(regular expression),是用來規範字串的一種表示式。可以對字串進行查詢、替換(刪除和格式化)、切割和各種驗證。
正規表示式——使用規則
2、字符集:規定乙個字元的規則
[ab我] 表示在a,b,我三個選項中任意乙個匹配成功
如果備選字元列表中個別字元之間是連續的,可以使用「-」省略中間的字元。如:
[0-9]:一位數字[a-z]:一位小寫字母
[a-z]:一位大寫字母
[a-za-z]:以為字母
[\u4e00-\u9fa5]:一位漢字
字符集開頭,如果使用了「^」表示除了「^」後的字元
3、預定義字符集:對常用字符集的簡化標識
\d <==> [0-9] :一位數字\w
<==> [0-9a-za-z_] :以為字母,數字或下劃線
\s : 一位空字元,包括換行、空格、製表符(tab)
. : 除回車換行外的任意乙個字元
以上預定義字符集中表示的字符集是固定的。
4、量詞:規定字符集出現的次數
4.1 量詞一般用於字符集之後,預設修飾量詞前乙個字符集,有明確數量的量詞:
: 最少出現m次,最多n次
如:1[3578] ,表示「[3578]」字符集中的3,5,7,8四個字元最少出現3次,最多出現6次
: 最少出現m次,沒有上限
如:1[3578] ,表示「[3578]」字符集中的3,5,7,8四個字元最少出現3次
: 必須出現m次
如銀行卡密碼:[0-9] ,表示只能是六位數字
4.2 沒有明確數量的量詞
? : 可有可無,最多出現一次
* : 可有可無,沒有上限
+ : 至少出現一次,沒有上限
5、分組和選擇
選擇:類似於程式中的「或」,用「|」表示,只要滿足「|」符號兩邊的正規表示式任意乙個正則即可。(正則中「|」的優先順序最低)如: 15|8 ,表示匹配「15」或者「8」
分組:用「()」表示,小括號「()」中內容表示一組,如果數量詞放在「()」之後,則表示把「()」中內容看作乙個整體,而量詞用來修飾這個整體。
注意:正則中如果正文和正則保留符號衝突,可以用「\」轉義。
6、指定匹配位置
「^」:表示開始位置,一般用於正規表示式的開頭,匹配開始位置的,表示以...開頭
「$」:結束位置前的,一般用於結尾,以...結尾
如: ^\s+ 匹配開頭位置的多個空字元
\s+$ 匹配結尾位置的多個空字元
^\s+|\s+$ 匹配開頭或結尾的空字元
如果前有「^」,後有「$」,表示從頭到尾完整匹配 ——驗證
注意:只要是驗證,都需要完全匹配,故前加「^」後加「$」
7、分組編號
正則中每個「()」,正則都會對其自動生成從1開始的編號。如果後邊想匹配和前面某個分組完全相同的內容,可用「\n」匹配,如:
(\d)\1* 匹配相鄰數字重複的字元
(.)\1* 匹配和第乙個字元完全相同的重複字元
如:陣列去重複,先將陣列用join函式以「,,」為分隔符轉為字串。正規表示式如下:
(^|,)([^,])(,,\2)*
解析:①第一部分:「(^|,)」,匹配開頭有或者沒有「,」;
②第二部分:「([^,])」:除了「,」以後的其他字元;
③第三部分:「(,,\2)」:表示第二部分後面有兩個「,」和第二部分本身,第三部分會出現一次或多次。
如:字串「a,,a,,b,,c,,c,,c,,d,,d」使用正則查詢後的結果是「a,,a」、「,c,,c,,c」和「,d,,d」
8、預判
提前檢查整個字串是否符合個別要求,相當於「而且」,用「(?)」,如:
密碼強度的要求:8位字元,必須是字母、數字的組合;要求:1)至少包含一位大寫字母;2)包含以為數字
分析:1)判斷不全由小寫字母和數字組成。(說明可能包含大寫字母或特殊符號)
(?![0-9a-z]+$)
// 從開頭到結尾的字元是不是都滿足要求,"?"表示從頭開始;「+$」表示一直檢查到結尾
2)判斷不全由字母(大寫和小寫)組成。(說明可能包含數字或特殊符號)
(?![a-za-z]+$)
3)只能由數字和字母組成。(排除特殊符號)
[0-9a-za-z]
4)最後結果:
(?![0-9a-z]+$)(?![a-za-z]+$)[0-9a-za-z]
9、正則應用示例
(1) 身份證號,共15位或18位:1)前15位數字;2)接著2位數字;3)最後一位,可能是數字、x或x中的任意乙個;4)最後三位為一組,可有可無,最多出現一次。結果:
\d(\d[0-9xx])?
(2) 手機號:1)+86或0086,整體可有可無,最多出現1次;2)空字元,可有可無,最多不限;3)[34578];4)9位數字,結果:
(\+86|0086)?\s*1[34578]\d
js數字正規表示式,js小數正規表示式
js數字正規表示式,js小數正規表示式 是否為數字 僅正數 包括正整數 正小數 0 param value returns function isnumber value 是否為所有數字 正數 負數 包括整數 小數 0 param value returns function isnumberall...
JS 正規表示式
驗證數字的正規表示式集 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 9 0 9 驗證非零的正整數 1 9 0 9 驗證非零的負整數 1 9 0 ...
js正規表示式
用正規表示式模式在字串中執行查詢,並返回包含該查詢結果的乙個陣列。rgexp.exec str 引數rgexp 必選項。包含正規表示式模式和可用標誌的正規表示式物件。str 必選項。要在其中執行查詢的string物件或字串文字。說明如果exec方法沒有找到匹配,則它返回null。如果它找到匹配,則e...