正則表達式字符類是 將單獨的直接符放進中括號內就可以組合成字符類.一個字符類和它所包含的任何一個字符都匹配。在正則表達式中用戶可以定義否定字符類,這些類匹配的是除那些包含在中括號之內的字符外的所有字符。那麼,JS正則表達式大全都有哪些呢?讓我們一起期待一下吧!
\n 匹配一個換行符
\r 匹配一個回車符
\s 匹配一個空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一個非空白字符,等於/[^\n\f\r\t\v]/
\t 匹配一個製表符
\v 匹配一個重直製表符
\w 匹配一個可以組成單詞的字符(alphanumeric,這是我的意譯,含數字),包括下劃線,如[\w]匹配"$5.98"中的5,等於[a-zA-Z0-9]
\W 匹配一個不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等於[^a-zA-Z0-9]。
\ 做為轉意,即通常在"\"後麵的字符不按原來意義解釋,如/b/匹配字符"b",當b前麵加了反斜杆後/\b/,轉意為匹配一個單詞的邊界。
對正則表達式功能字符的還原,如"*"匹配它前麵元字符0次或多次,/a*/將匹配a,aa,aaa,加了"\"後,/a\*/將隻匹配"a*"。
^ 匹配一個輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$ 匹配一個輸入或一行的結尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前麵元字符0次或多次,/ba*/將匹配b,ba,baa,baaa
+ 匹配前麵元字符1次或多次,/ba*/將匹配ba,baa,baaa
? 匹配前麵元字符0次或1次,/ba*/將匹配b,ba
(x) 匹配x保存x在名為$1...$9的變量中
x|y 匹配x或y
{n} 精確匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配這個集合中的任一一個字符(或元字符)
[^xyz] 不匹配這個集合中的任何一個字符
[\b] 匹配一個退格符
\b 匹配一個單詞的邊界
\B 匹配一個單詞的非邊界
\cX 這兒,X是一個控製符,/\cM/匹配Ctrl-M
\d 匹配一個字數字符,/\d/ = /[0-9]/
\D 匹配一個非字數字符,/\D/ = /[^0-9]/
用re = new RegExp("pattern",["flags"]) 的方式比較好
pattern : 正則表達式
flags: g (全文查找出現的所有 pattern)
i (忽略大小寫)
m (多行查找)
vaScript動態正則表達式問題
請問正則表達式可以動態生成嗎?
例如JavaScript中:
var str = "strTemp";
要生成:
var re = /strTemp/;
如果是字符連接:
var re = "/" + str + "/"即可