js正規表示式基本用法

weixin_34037977發表於2017-07-27

一個正規表示式是由普通字元(如a~z)以及特殊字元(稱為元字元)組成的模式字串。
該模式字串描述在查詢文字主體時待匹配的一個或多個字串。正規表示式作為一
個模板,將某個字元模式與所搜尋的字串進行匹配。

1、字元類

[...] 匹配方括號中字元序列的任意一個 /[012]/可以與0A1B2C中的字元0或1或2匹配
字元。其中可以使用連字元"-"匹配 /[0-5]/可以與a3g02gsf91dfs4中的0到5
指定範圍內的任意字元。 之間的任意數字字元匹配

[^...] 匹配方括號中字元序列未包含的任意 /[^012]/可以與0A1B2C中的除0、1、2
字元。其中可以使用連字元"-"匹配不 之外的任意字元匹配,在這裡匹配A或B或C
在指定範圍內的任意字元。 /[^a-z]/可以與a3g02gsf91dfs4不在小寫
字母a-z之間的任意字元匹配。

. 匹配除了換行和回車之外的任意字元, 無
相當於[^\r\n]

\d 匹配任意一個數字字元,相當於[0-9] /\d\d/可以匹配wy32k中的32

\D 匹配任意非數字字元,相當於[^0-9] /\D/可以匹配wy3k中的w或y或k

\s 匹配任意空白字元,如空格、製表符、 /\s\d\d/可以匹配my age is 20.中的 20
換行符等,相當於[\t\n\x0B\f\r] 注意2前面的空格。

\S 匹配任意非空白符,相當於[^\t\n\x0B\f\r] /\S/可以匹配A B中的A或B

\w 匹配任何英文字母、數字字元以及下劃線, /\w/可以匹配shdf82w09_+&^中的字母、
相當於[a-zA-Z0-9_] 數字、下劃線

2、量詞

程式碼 說明 示例
? 匹配前一項0次或1次 /JS?/可以匹配JScript中的JS或者JavaScript中
的J

  • 匹配前一項1次或多次, /JS+/可以匹配JS,也可以匹配JSSSS或者JSSSSSS,
    但至少出現1次 也就是說可以匹配J後面出現一個或多個S。

  • 匹配前一項0次或者多次, /bo*/可以匹配b、bo、boo、boooo之類的字串
    也就是任意次

{n} 匹配前一項恰好n次,其中n為 /o{2}/可以匹配book中的兩個o,也可以匹配booook
非負整數 中任意兩個連續的o

{n,} 匹配前一項至少n次 /o{2,}/不匹配home中的o,因為至少要匹配兩個o。
所以可以匹配good或者gooooood中的所有o

{n,m} 匹配前一項至少n次,但不能 /o{2,5}/可以匹配book中的兩個o,也可以匹配
超過m次,其中n、m是非負整 boooook中的5個連續的o
數,並且n<=m

在使用{n,m}時,數字與逗號之間不能有空格符

3、指定匹配位置

^ 匹配字串的行開頭。 /^g/匹配good中的g,但不匹配bag中的g
^必須出現在指定字元
串的最前面才起作用。

$ 匹配字串的行結尾。 /g$/匹配bag中的g,但不匹配good中的g
$必須出現在指定字元
串的最後面才起作用。

\b 匹配單詞的邊界 /e\b/匹配"I love seek"中love的e,不匹配seek中的e

\B 匹配單詞的非邊界 /e\B/匹配"I love seek"中seek的e,不匹配love中的e

4、使用選擇匹配符
正規表示式的選擇匹配符只有一個"|",使用"|"可以匹配指定的多個選項中的任意一項。
例如/World|Dream/可以匹配"One World One Dream"中的World或者Dream

5、分組
分組就是使用小括號將多個單獨的字元或字元類組合成子表示式,以便可以像處理一個
獨立的單元那樣,用"|"、"*"、"+"或者"?"等來處理他們。比如/J(ava)?Script/可以匹配
JavaScript,也可以匹配JScript

相關文章