JavaScript中的正则表达式
RegExp对象提供了JavaScript对正则表达式的支持。先看四个表:
元字符相当于是关键字不可直接使用,要用转义字符"\"转义
| 元字符 | 含义 |
| ^ | 串的开始 |
| $ | 串的结束 |
| * | 零到多次匹配 |
| + | 一到多次匹配 |
| ? | 零或一次匹配 |
| \b | 单词边界 |
特殊字符用于注入空格制表符等,使用时也要转义
| 字符 | 含义 |
| 字符本身 | 匹配字符本身 |
| \r | 匹配回车 |
| \n | 匹配换行 |
| \t | 制表符 |
| \f | 换页 |
| \x# | 匹配十六进制 |
| \cX | 匹配控制字符 |
范围标记
| 标志符 | 含义 |
| [...] | 在集合中的任一字符 |
| [^...] | 不在集合中的任一字符 |
| . | 除\n之外的任一字符 |
| \w | 所有单字,包括数字字母下划线 |
| \W | 不包含所有的单字,\w的补集 |
| \s | 所有的空白字符,包括空格,制表符 |
| \S | 所有的非空白字符 |
| \d | 所有的数字 |
| \D | 所有的非数字 |
| \b | 退格字符 |
重复标记
| 标记 | 含义 |
| {n} | 重复n次 |
| {n,} | 重复n或更多次 |
| {n,m} | 至少重复n次,之多重复m次 |
示例一个Email的正则表达式:
var email = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
[\w-]+ 表示集合(字母数字下划线减号)出现至少一次
(\.[\w-]+)* 表示组(点字母数字下划线减号)整体出现零到多次
@ 表示@出现一次
[\w-]+ 同上
(\.[\w-]+)+ 表示组(点字母数字下划线减号)整体出现一到多次
下面匹配三个字符串:
email.test("whjnsge@hotmail.com");//true
email.test("wede.abresdz@pl.plidel.china");//true
email.test("@ivadel.com");//false
三种情况下会用到分组:
1.用括号把子表达式标记起来
h(elp)? 就意味着help和h都可以表示“帮助”
2.当正则表达式执行完后,与之匹配的文本将会按照规则填入各个分组
var pattern =/\w{4}(\d{4})(\w{2})/; var arr = pattern.exec("ssdf5896ges");
结果是 arr[1]的值为5896 arr[2]的值为ge
3.在同一个表达式中重复使用这个组的匹配规则
var pattern = /(['"])[^\1]*\1/;
\1相当于是(['"])的别名,并可以在后面的式子中重复使用
使用正则表达式细则请参看JavaScript文档中RegExp对象。

浙公网安备 33010602011771号