js正規表示式

2022-09-16 06:45:12 字數 2621 閱讀 3578

正規表示式(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...