字符含意
# 做为转意,即通常在"\"后面的字符不按原来意义解释,如/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在名为$1...$9的变量中
(x)
# 匹配x或y
x|y
# 精确匹配n次
{n}
# 匹配n次以上
{n,}
# 匹配n-m次
{n,m}
# 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[xyz]
# 不匹配这个集合中的任何一个字符
[^xyz]
# 匹配一个退格符
[\b]
# 匹配一个单词的边界
\b
# 匹配一个单词的非边界
\B
# X是一个控制符,/\cM/匹配Ctrl-M
\cX
# 匹配一个字数字符,/\d/ = /[0-9]/
\d
# 匹配一个非字数字符,/\D/ = /[^0-9]/
\D
# 匹配一个换行符
\n
# 匹配一个回车符
\r
# 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\s
# 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\S
# 匹配一个制表符
\t
# 匹配一个重直制表符
\v
# 匹配一个可以组成单词的字符(alphanumeric)
# 包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\w
# 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]
\W
直接量字符
# 换页符
\f
# 换行符
\n
# 回车
\r
# 制表符
\t
# 垂直制表符
\v
# 一个 / 直接量
\/
# 一个 \ 直接量
\\
# 一个 . 直接量
\.
# 一个 * 直接量
\*
# 一个 + 直接量
\+
# 一个 ? 直接量
\?
# 一个 | 直接量
\|
# 一个 ( 直接量
\(
# 一个 ) 直接量
\)
# 一个 [ 直接量
\[
# 一个 ] 直接量
\]
# 一个 { 直接量
\{
# 一个 } 直接量
\}
# 由十进制数 XXX 指 定的ASCII码字符
\ XXX
# 由十六进制数 nn 指定的ASCII码字符
\ Xnn
# 控制字符^X. 例如, \cI等价于 \t, \cJ等价于 \n
\ cX
字符类
// 位于括号之内的任意字符
[...]
// 不在括号之中的任意字符
[^...]
// 除了换行符之外的任意字符,等价于[^\n]
.
# 任何单字字符, 等价于[a-zA-Z0-9]
\w
# 任何非单字字符,等价于[^a-zA-Z0-9]
\W
# 任何空白符,等价于[\ t \ n \ r \ f \ v]
\s
# 任何非空白符,等价于[^\ t \ n \ r \ f \ v]
\S
# 任何数字,等价于[0-9]
\d
# 除了数字之外的任何字符,等价于[^0-9]
\D
# 一个退格直接量(特例)
[\b]
复制
// 匹配前一项至少n次,但是不能超过m次
{n, m}
// 匹配前一项n次,或者多次
{n, }
// 匹配前一项恰好n次
{n}
// 匹配前一项0次或1次,也就是说前一项是可选的. 等价于 {0, 1}
?
// 匹配前一项1次或多次,等价于{1,}
+
// 匹配前一项0次或多次.等价于{0,}
*
// 匹配2到4间的数字
/\d{2, 4}/
// 匹配三个单字字符和一个任意的数字.
/\w{3} \d?/
// 匹配字符串"java" ,并且该串前后可以有一个或多个空格.
/\s+java\s+/
// 匹配零个或多个非引号字符.
/[^"] * /
选择,分组和引用
// 选择.
// 匹配的要么是该符号左边的子表达式,要么它右边的子表达式
|
// 分组
// 可以记住和这个组匹配的字符以供此后引用使用
// 用法1: 把单独的项目分组成子表达式,以便可以像处理一个独立的单元那种用 *、+或? 来处理那些项目
// 用法2: 在完整的模式中定义子模式
// 用法3: 允许我们在同一正则表达式的后面引用前面的子表达式.
// 这是通过在字符串 \ 后加一位或多位数字来实现的.
// 数字指的是代括号的子表达式在正则表达式中的位置
// 例如: \1 引用的是第一个代括号的子表达式
// 注意,由于子表达式可以嵌套在其它子表达式中, 所以它的位置是被计数的左括号的位置
(...)
// 和第n个分组所匹配的字符相匹配
// 分组是括号中的子表达式(可能是嵌套的)
// 分组号是从左到右计数的左括号数
\n
// 匹配的是字符串 "ab" 或者 "cd" 或者 "ef"
/ab|cd|ef/
// 匹配的是要么是一个三位数,要么是四个小写字母
/\d{3}|[a-z]{4}/
// 匹配的是字符串 "java",其后既可以有 "script",也可以没有 "script"
/java(script) ?/
// 匹配的既可以是字符串 "ef",也可以是字符串"ab" 或者 "cd" 的一次或多次重复
(ab|cd) + |ef) /
// 匹配一个或多个字母后面跟随一位或多位数字
/ [a-z] + \ d+/
// 从所检索到的任何匹配中抽取数字
(/ [a-z] + (\d+)/)
// 匹配位于单引号或双引号之内的所有字符,并且要求开始和结束的引号匹配
// (例如两个都是双引号或者都是单引号)
// 规约: 一个字符串各个分离的部分包含的是完全相同的字符
// 以下两个正则表达式是等价的
/[' "] [^ ' "]*[' "]/
/( [' "] ) [^ ' "] * \1/
指定匹配的位置
// 匹配的是字符的开头,在多行检索中,匹配的是一行的开头
^
// 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾
$
// 匹配的是一个词语的边界
// 位于字符\w 和 \w之间的位置 (注意: [\b] 匹配的是退格符)
\b
\B 匹配的是非词语的边界的字符
// 匹配词 "javascript"
/^ javascript $/
// 检索 "java" 这个词自身 (不像在 "javascript" 中那样作为前缀)
/\b java \b/
属性
// 执行大小写不敏感的匹配
i
// 执行一个全局的匹配
// 找到所有的匹配,而不是在找到第一个之后就停止
g
// 执行一个大小不敏感的检索以找到词语 "java" 或 "java" 或 "JAVA" 等
/\b java\b/i
// 在一个字符串中找到 "java" 所有的具体值
/\b java \b/gi
javascript 正则表达式
// 设置 RegExp.multiline = true; 模式匹配将以多行的模式进行
// 非负整数(正整数 + 0)
"^\\d+$"
// 正整数
"^[0-9]*[1-9][0-9]*$"
// 非正整数(负整数 + 0)
"^((-\\d+)|(0+))$"
// 负整数
"^-[0-9]*[1-9][0-9]*$"
// 整数
"^-?\\d+$"
// 非负浮点数(正浮点数 + 0)
"^\\d+(\\.\\d+)?$"
// 正浮点数
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"
// 非正浮点数(负浮点数 + 0)
"^((-\\d+(\\.\\d+)?)|(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+)?$"
// 由26个英文字母组成的字符串
"^[A-Za-z]+$"
// 由26个英文字母的大写组成的字符串
"^[A-Z]+$"
// 由26个英文字母的小写组成的字符串
"^[a-z]+$"
// 由数字和26个英文字母组成的字符串
"^[A-Za-z0-9]+$"
// 由数字、26个英文字母或者下划线组成的字符串
"^\\w+$"
// Email 地址
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"
// url
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"
// 只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
// 只能输入1-30个以字母开头的字串
/^[a-zA-Z]{1,30}$/
// 只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
// 校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
// 邮政编码
/^[a-zA-Z0-9 ]{3,12}$/
// 搜索关键字
/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/
// 去除两边的空格
/(^\s*) | (\s*$)/g
// 限制只能输入中文
/[^\u4E00-\u9FA5]/g
// 限制只能输入全角字符
/[^\uFF00-\uFFFF]/g
// 限制只能输入数字
/[^\d]/g
网友评论