创建正则对象 构建函数RegExp创建正则对象
1 var reg = new RegExp('i$'); // reg匹配以i字母结尾的字符串
使用正则字面量
正则表达式字符 反斜杠\
在正则表达式中表示转义序列
1 2 特殊符号: ^ $ . * + ? = ! | \ / ( ) [ ] { }
如果要在正则表达式中匹配特殊符号, 就应该在特殊符号前面的加上反斜杠\
进行转义
1 var reg = /\$/; // reg匹配$符号
字面量字符
1 2 3 4 5 6 7 8 9 10 11 12 ------------------------------------------------------------------ 字符 | 匹配 ------------------------------------------------------------------ \o | NUL字符(\u0000) \t | 制表符(\u0009) \n | 换行符(\u000A) \v | 垂直制表符(\u000B) \f | 换页符 \r | 回车符 \xnn | 十六进制数nn指定拉丁字符, 如: \x0A等同于\n \uxxxx | 十六进制xxxx指定的Unicode字符, 如: \u0009等同于\t ------------------------------------------------------------------
字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ------------------------------------------------------------------ 字符 | 匹配 ------------------------------------------------------------------ [...] | 中括号内的任意字符 [^...] | 非中括号内的任意字符 [0-9] | 0-9之间的数字 [a-z] | 小写拉丁字母 [A-Z] | 大写拉丁字母 [ 0-9a-zA-Z ] | 数字和大小写拉丁字母 . | 除换行符和其它Unicode行终止符之外的任意字符 \s | 任意Unicode空白符 \S | 任意非Unicode空白符 \d | 任意ASCII码数字, 等同于[0-9] \D | 任意非ASCII码数字字符, 等同于[^0-9] \w | 等同于[a-zA-Z0-9_] \W | 等同于[^a-zA-Z0-9_] ------------------------------------------------------------------
贪婪的重复字符
1 2 3 4 5 6 7 8 9 10 ------------------------------------------------------------------ 字符 | 匹配次数 ------------------------------------------------------------------ {n,m} | 至少n次, 但不能超过m次 {n,} | 至少n次 {n} | 刚好n次 ? | 零次或者一次, 等同于{0,1} + | 至少一次, 等同于{1,} * | 零次或者多次, 等同于{0,} ------------------------------------------------------------------
非贪婪的重复匹配只需要在贪婪的重复字符后面加上一个?
, 且问好之后没有其它的表达式字符, 不然会忽略非贪婪匹配
选择,分组和引用
1 2 3 4 5 6 7 8 -------------------------------------------------------------------------- 字符 | 含义 -------------------------------------------------------------------------- | | 表示或,用于分隔选择 () | 子表达式(子模式), 引用子模式匹配结果 (?:) | 子表达式(子模式), 引用子模式匹配结果, 匹配结果不显示在正则匹配结果中 \n(n为数字) | 引用对应的子模式匹配结果 --------------------------------------------------------------------------
位置字符
1 2 3 4 5 6 7 8 9 10 -------------------------------------------------------------------------- 字符 | 含义 -------------------------------------------------------------------------- ^ | 字符串的开头 $ | 字符串的结尾 \b | 位于\w和\W的边界或者位于一个ASCII单词字符与一个字符串开头和结尾之间的边界 \B | 非词语之间的位置 (?=p) | 正前向声明, 要求接下来的字符与模式p匹配,但不包括匹配中的字符 (?!p) | 反前向声明, 要求接下来的字符不与模式p匹配 --------------------------------------------------------------------------
正则对象标志, 属性和方法 标志
1 2 3 4 5 6 7 ----------------------------------------------------- 标志 | 含义 ----------------------------------------------------- g | 全局匹配 i | 不区分大小写 m | 多行匹配 -----------------------------------------------------
方法
1 2 3 4 5 6 7 ------------------------------------------------------------------- 方法 | 含义 ------------------------------------------------------------------- exec | 接收一个字符串参数, 返回由完全匹配和子表达式匹配结果组成的数组 test | 接收一个字符串参数, 返回boolean值 compile | 编译正则表达式 -------------------------------------------------------------------
属性
1 2 3 4 5 6 7 8 9 ------------------------------------------------------------------- 属性 | 含义 ------------------------------------------------------------------- sourse | 正则表达式的文本 global | 是否拥有全局搜索标志g ignoreCase | 是否拥有标志i multiline | 是否拥有标志m lastIndex | 搜索匹配的开始位置(可读写) -------------------------------------------------------------------
参考链接