^符號匹配字符串的開頭。例如:
^abc 與“abc xyz”匹配,而不與“xyz abc”匹配
$符號匹配字符串的結尾。例如:
abc$ 與“xyz abc”匹配,而不與“abc xyz”匹配。
注意:如果同時使用^符號和$符號,將進行精確匹配。例如:
^abc$ 只與“abc”匹配
*符號匹配0個或多個前面的字符。例如:
ab* 可以匹配“ab”、“abb”、“abbb”等
+符號匹配至少一個前面的字符。例如:
ab+ 可以匹配“abb”、“abbb”等,但不匹配“ab”。
?符號匹配0個或1個前面的字符。例如:
ab?c? 可以且只能匹配“abc”、“abbc”、“abcc”和“abbcc”
.符號匹配除換行符以外的任何字符。例如:
(.)+ 匹配除換行符以外的所有字符串
x|y匹配“x”或“y”。例如:
abc|xyz 可匹配 “abc”或 “xyz”,而“ab(c|x)yz”匹配 “abcyz”和“abxyz”
{n}匹配恰好n次(n爲非負整數)前面的字符。例如:
a{2} 可以匹配“aa“,但不匹配“a”
{n,}匹配至少n次(n爲非負整數)前面的字符。例如:
a{3,} 匹配“aaa”、“aaaa”等,但不匹配“a”和“aa”。
注意:a{1,}等價於a+
a{0,}等價於a*
{m,n}匹配至少m個,至多n個前面的字符。例如:
a{1,3} 只匹配“a”、“aa”和“aaa”。
注意:a{0,1}等價於a?
[xyz]表示一個字符集,匹配括號中字符的其中之一。例如:
[abc] 匹配“a”、“b”和“c”
[^xyz]表示一個否定的字符集。匹配不在此括號中的任何字符。例如:
[^abc] 可以匹配除“a”、“b”和“c”之外的任何字符
[a-z]表示某個範圍內的字符,匹配指定區間內的任何字符。例如:
[a-z] 匹配從“a”到“z”之間的任何一個小寫字母字符
[^m-n]表示某個範圍之外的字符,匹配不在指定範圍內的字符。例如:
[m-n] 匹配除從“m”到“n”之間的任何字符
/符號是轉義操作符。例如:
/n 換行符
/f 分頁符
/r 回車
/t 製表符
/v 垂直製表符
// 匹配“/”
// 匹配“/”
/s 任何白字符,包括空格、製表符、分頁符等。等價於“[ /f/n/r/t/v]”
/S 任何非空白的字符。等價於“^/f/n/r/t/v]”
/w 任何單詞字符,包括字母和下劃線。等價於“[A-Za-z0-9_]”
/W 任何非單詞字符。等價於“[^A-Za-z0-9_]”
/b匹配單詞的結尾。例如:
ve/b 匹配單詞“love”等,但不匹配“very”、“even”等
/B匹配單詞的開頭。例如:
ve/B 匹配單詞“very”等,但不匹配“love”等
/d匹配一個數字字符,等價於[0-9]。例如:
abc/dxyz 匹配“abc2xyz”、“abc4xyz”等,但不匹配“abcaxyz”、“abc-xyz”等
/D匹配一個非數字字符,等價於[^0-9]。例如:
abc/Dxyz 匹配“abcaxyz”、“abc-xyz”等,但不匹配“abc2xyz”、“abc4xyz”等
/NUM匹配NUM個(其中NUM爲一個正整數),引用回到記住的匹配。例如:
(.)/1 匹配兩個連續相同的字符。
/oNUM匹配n(其中n爲一個小於256的八進制換碼值)。例如:
/o011 匹配製表符
/xNUM匹配NUM(其中NUM爲一個小於256的十六進制換碼值)。例如:
/x41 匹配字符“A”
匹配中文字符的正則表達式: [/u4e00-/u9fa5]
匹配雙字節字符(包括漢字在內):[^/x00-/xff]
應用:計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)
String.prototype.len=function(){return this.replace([^/x00-/xff]/g,"aa").length;}
匹配空行的正則表達式:/n[/s| ]*/r
匹配HTML標記的正則表達式:/<(.*)>.*<///1>|<(.*) //>/
匹配首尾空格的正則表達式:(^/s*)|(/s*$)
^/d+$ //匹配非負整數(正整數 + 0)
^[0-9]*[1-9][0-9]*$ //匹配正整數
^((-/d+)|(0+))$ //匹配非正整數(負整數 + 0)
^-[0-9]*[1-9][0-9]*$ //匹配負整數
^-?/d+$ //匹配整數
^/d+(/./d+)?$ //匹配非負浮點數(正浮點數 + 0)
^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮點數
^((-/d+(/./d+)?)|(0+(/.0+)?))$ //匹配非正浮點數(負浮點數 + 0)
^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配負浮點數
^(-?/d+)(/./d+)?$ //匹配浮點數
^[A-Za-z]+$ //匹配由26個英文字母組成的字符串
^[A-Z]+$ //匹配由26個英文字母的大寫組成的字符串
^[a-z]+$ //匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字符串
^/w+$ //匹配由數字、26個英文字母或者下劃線組成的字符串
^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$ //匹配email地址
^[a-zA-z]+://匹配(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$ //匹配url