$ :匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。
^ : 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^。
{ :标记限定符表达式的开始。要匹配 {,请使用 \{。
? :匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
{n} :n 是非负整数。正好匹配 n 次。例如,"o{2}"与"Job"中的"o"不匹配,但与"Good"中的两个"o"匹配。
{n,} :n 是非负整数。至少匹配 n 次。例如,"o{2,}"不匹配"Job"中的"o",而匹配"Goooood"中的所有 o。"o{1,}"等效于"o+"。"o{0,}"等效于"o*"。
{n,m} :M 和 n 是非负整数,其中 n <= m。匹配至少 n 次,至多 m 次。例如,"o{1,3}"匹配"Gooooood"中的头三个 o。'o{0,1}' 等效于 'o?'。注意:不能将空格插入逗号和数字之间。
| :指明两项之间的一个选择。要匹配 |,请使用 \|
( ) :标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
* :匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+ :匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
. :匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
[ :标记一个中括号表达式的开始。要匹配 [,请使用 \[。
\ :将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
\w: 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'
\W : 匹配任何非单词字符。与"[^A-Za-z0-9_]"等效。
x|y : 匹配 x 或 y。例如,'F|Good' 匹配"F"或"Food"。'(F|G)ood' 匹配"Food"或"Good"。
[xyz] :字符集。匹配包含的任一字符。例如,"[abc]"匹配"Happy"中的"a"。
[^xyz] :反向字符集。匹配未包含的任何字符。例如,"[^abc]"匹配"Happy"中"H","p","p","y"。
[a-z] :字符范围。匹配指定范围内的任何字符。例如,"[a-z]"匹配"a"到"z"范围内的任何小写字母。
[^a-z] :反向范围字符。匹配不在指定的范围内的任何字符。例如,"[^a-z]"匹配任何不在"a"到"z"范围内的任何字符。
\b :匹配一个字的开头或结尾位置。例如,"er\b"匹配"never"中的"er",但不匹配"verb"中的"er"。
\B :非字边界匹配。"er\B"匹配"verb"中的"er",但不匹配"never"中的"er"。
\d :数字字符匹配。等效于 [0-9]。
\D :非数字字符匹配。等效于 [^0-9]。
\cx :匹配 x 指示的控制字符。例如,\cM 匹配 Control-M 或回车符。x 的值必须在 A-Z 或 a-z 之间。如果不是这样,则假定 c 就是"c"字符本身。
\f :换页符匹配
\n :换行符匹配
\t :匹配一个回车符。
\s :匹配任何空白字符。包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。
\S:匹配任何非空白字符。
\v :垂直制表符匹配。
正则表达式实例:判断身份证:
(身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X;18位的倒数第二位是性别,1是男,2是女)
^[1-9]\d{5}(\d{4})(0[1-9]|1[0-2])(0[1-9]|[1,2][0-9]|3[0-1])(\d{2}[1,2][0-9,X,x]|\d{3}|\d{1})$
开头首位是1-9的数字+五位数字+年份(4位数字) +月份(01-09的数字)+日期(1-2开头,0-9结尾或者3开头,0-1结尾;即01-31日)+2位数字、1或2、以及0-9或X或x结尾 或者3为数字 或者1位数字结尾;
六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。