说明

正则表达式:Regular Expression,使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
JavaScript 正则语法:/正则表达式主体/修饰符(可选)
修饰符 描述
i 执行对大小写不敏感的匹配
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
m 执行多行匹配
开始和结束
^ 表示字符串以 ^ 后面的字符开始才能匹配,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符。
$ 表示字符串以 $ 前面的字符结束才能匹配。
通配符
使用通配符和特殊的转义字符来匹配更多的字符
  • . 匹配除换行符外的任何字符
  • \d 匹配数字 \D 匹配非数字
  • \s 匹配空格 \S 匹配任何非空白
  • \n 匹配新行
特定数量
将特定数量的匹配字符或组与量词匹配
  • * 匹配前面的子表达式零次或多次
  • + 匹配 1或 n 次
  • ? 匹配 0或1 次
  • {3} 匹配正好 3 次
  • {2,4} 匹配 2 次,3 次,4 次
  • {2,} 匹配 2 次或更多次
小括号匹配组
使用 () 捕获组, () 会返回完整匹配加上组,除非您使用 g 标志,使用管道运算符 | 在 () 内部以指定该组匹配的内容,相当于或
字符组[]
字符组有助于匹配特定字符或者特定的字符序列。它们可以像字符简写式那样代表一大批字符,比如 \d 匹配的字符与 [0-9] 所匹配的字符一样。
对字符组取反会匹配与字符组内容不匹配的字符。比如,如果不想匹配数字,可以这样写:[^0-9]
反斜杠
要匹配特殊字符,请使用反斜杠 \
JavaScript 正则表达式中的特殊字符是^ $ \。 * +? () [] {} |
因此,要匹配一个星号,可以使用 \*,不只是 *
常用正则表达式
  • 匹配 Html 中的 属性:\s*\S*="[^"]+"\s*
  • 匹配 Html 中的 链接:<a [^>]*href\s*=\s*['""]([^'""]+)['""][^>]*>