正则表达式创建一个正则表达式
你可以通过下面两种方法创建一个正则表达式:
使用一个正则表达式字面量,如下所示:
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 | /<[^>]+>/ |