b
\:将下一个字符标记为特殊字符或字面值。例如"n"与字符"n"匹
配。"\n"与换行符匹配。序列"\\"与"\"匹配,"\("与"("匹配。“\”为转义字符
^ :匹配输入的开始位置。
在书写正则表达式的模式时使用了特殊的字符和序列。下表描述了可以使用的字符和序列,并给出了实例。
字符描述:
配。"\n"与换行符匹配。序列"\\"与"\"匹配,"\("与"("匹配。“\”为转义字符
^ :匹配输入的开始位置。
$
:匹配输入的结尾。
* :匹配前一个字符零次或几次。例如,"zo*"可以匹配"z"、"zoo"。
+ :匹配前一个字符一次或多次。例如,"zo+"可以匹配"zoo",但不匹配"z"。
? :匹配前一个字符零次或一次。例如,"a?ve?"可以匹配"never"中的"ve"。
.:匹配换行符以外的任何字符。
x|y:匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹
配 "zoo" 或 "food"。
{n,}
:n
为非负的整数。匹配至少n次。例如,"o{2,}"不匹配"Bob"中的"o",但是匹配"foooood"中所有的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。
{n,m} :m
和
n
为非负的整数。匹配至少
n
次,至多
m
次。例如,"o{1,3}"
匹配
"fooooood"中前三个o。"o{0,1}"等价于"o?"。
[xyz] :一个字符集。与括号中字符的其中之一匹配。例如,"[abc]"
匹
配"plain"中的"a"。
[^xyz] :一个否定的字符集。匹配不在此括号中的任何字符。例如,"[^abc]"
可以匹配"plain"中的"p".
[a-z] :表示某个范围内的字符。与指定区间内的任何字符匹配。例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
[^m-z] :否定的字符区间。与不在指定区间内的字符匹配。例如,"[m-z]"与不
在"m"到"z"之间的任何字符匹配。
\b :与单词的边界匹配,即单词与空格之间的位置。例如,"er\b"
与"never"中的"er"匹配,但是不匹配"verb"中的"er"。
\B :与非单词边界匹配。"ea*r\B"与"never
early"中的"ear"匹配。
\d :与一个数字字符匹配。等价于[0-9]。
\D :与非数字的字符匹配。等价于[^0-9]。
\f :与分页符匹配。
\n :与换行符字符匹配。
\r :与回车字符匹配。
\s :与任何白字符匹配,包括空格、制表符、分页符等。等价于"[
\f\n\r\t\v]"。
\S :与任何非空白的字符匹配。等价于"[^
\f\n\r\t\v]"。
\t :与制表符匹配。
\v :与垂直制表符匹配。
\w :与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_]"。
\W :与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。
\num :匹配
num个,其中
num
为一个正整数。引用回到记住的匹配。例如,"(.)\1"匹配两个连续的相同的字符。
\n:匹配 n,其中n
是一个八进制换码值。八进制换码值必须是
1,
2
或
3
个数字长。
例如,"\11" 和
"\011"
都与一个制表符匹配。"\0011"等价于"\001"
与
"1"。八进制换码值不得超过
256。否则,只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。
\xn:匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如,"\x41"匹配"A"。"\x041"等价于"\x04" 和
"1"。允许在正则表达式中使用
ASCII
码。
案例:匹配电子邮箱
匹配要求:.
1.必须包含一个并且只有一个符号“@”
2. 必须包含至少一个至多三个符号“.”
3. 第一个字符不得是“@”或者“.”
4. 不允许出现“@.”或者.@
5. 结尾不得是字符“@”或者“.”
*
+
?
.:匹配换行符以外的任何字符。
x|y:匹配 x
配
{n,m}
[xyz]
配"plain"中的"a"。
[^xyz]
[a-z]
[^m-z]
在"m"到"z"之间的任何字符匹配。
\b
\B
\d
\D
\f
\n
\r
\s
\f\n\r\t\v]"。
\S
\t
\v
\w
\W
\num
\n:匹配
例如,"\11"
\xn:匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如,"\x41"匹配"A"。"\x041"等价于"\x04"
案例:匹配电子邮箱
匹配要求:.
2.
3.
4.
5.
表达式:^\w+@[a-z0-9]+\.[a-z]{2,4}$ 源码:var re=/^\w+@[a-z0-9]+\.[a-z]{2,4}$/; if(re.test("juzipchy@163.com")) { alert('对了'); } else { alert('你写错了'); }