正则表达式总结

正则表达式创建一个正则表达式

你可以通过下面两种方法创建一个正则表达式:

使用一个正则表达式字面量,如下所示:

1
var re = /ab+c/;

正则表达式字面量在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。

调用RegExp对象的构造函数,如下所示:

1
var re = new RegExp("ab+c");

使用构造函数,提供了对正则表达式运行时的编译。当你知道正则表达式的模式会发生改变,或者你事先并不了解它的模式或者是从其他地方(比如用户的输入),得到的代码这时比较适合用构造函数的方式。

正则表达式支持的字符转义

字符或序列 描述
除以下字符外的所有字符:。 $ ^ { [ ( \ ) * + ? \ “字符或序列”列中未包含的字符在正则表达式中没有特殊含义;此类字符与自身匹配。”字符或序列”列中包括的字符均为特殊的正则表达式语言元素。若要在正则表达式中匹配这些字符,必须将其转义或纳入 positive 字符组。例如,正则表达式 \$\d+ 或 [$]\d+ 匹配”$1200”。
\a 匹配响铃(警报)字符,\u0007。
\b 在 [character_group] 字符类中,匹配退格,\u0008。(请参阅字符类)。)在字符类之外,\b 是匹配字边界的定位点。(请参阅定位点)。
\t 匹配制表符,\u0009。
\r 匹配回车,\u000D。请注意,\r 不等同于换行符,\n。
\v 匹配垂直制表符,\u000B。
\f 匹配换页,\u000C。
\n 匹配换行,\u000A。
\e 匹配转义,\u001B。
\ nnn 匹配 ASCII 字符,其中 nnn 包含表示八进制字符代码的两位数或三位数。例如,\040 表示空格字符。如果此构造仅包含一个数字(如 \2)或者它对应捕获组的编号,则将它解释为向后引用。(请参阅反向引用构造)。)
\x nn 匹配 ASCII 字符,其中 nn 是两位数的十六进制字符代码。
\c X 匹配 ASCII 控制字符,其中 X 是控制字符的字母。例如,\cC 为 CTRL-C。
\u nnnn 匹配的 UTF-16 代码单元,单元值是 nnnn 十六进制。
\ 后接字符未识别为转义字符时,将匹配此字符。例如,\* 匹配星号 (*) 并等同于 \x2A。

RegExp对象方法

  • exec
  • test

String内置构造函数方法

  • match
  • search
  • replace
  • split

列举日常使用的正则表达式匹配

匹配url参数:key需要传入

1
/[?&]"+ key +"=([^&]*)/

匹配邮箱:

1
/^[a-zA-Z0-9][a-zA-Z0-9._-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

身份证:

1
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$/

html标签:

1
2
3
/<[^>]+>/ 
// 或
/<[a-z|/|A-Z]+>/