声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢!
作用
- 数据有效性验证
- 替换文本
- 提取文本
声明方式
字面量的声明方式
示例:var re = /a/gi;
RegExp声明方式
var re = new RegExp(); //RegExp是一个对象,和Aarray一样
//但这样没有任何效果,需要将正则表达式的内容作为字符串传递进去
re =new RegExp("a"); //最简单的正则表达式,将匹配字母a
re=new RegExp("a","i"); //第二个参数,表示匹配时不分大小写
RegExp构造函数第一个参数为正则表达式的文本内容,而第二个参数则为可选项标志.标志可以组合使用,两个参数都是字符串。
创建这个字符串时要多加小心,因为反斜杠在正则表达式和在字符串字面量中有一些不同的含义。通常需要双写反斜杠,以及对引号进行转义。(表现在低版本浏览器上)
var str='a/b\c'; var reg=/^a/b\c$/; document.write(str+'<br />'); //==>a/bc document.write(reg.test(str)+'<br />'); //==>true var reg1=new RegExp('^a/b\\c$'); var reg2=new RegExp('^a/b\\c$'); document.write(reg1.test(str)+'<br />'); //==>true,低版本浏览器为false document.write(reg2.test(str)+'<br />'); //==>true,这才是正确写法
正则表达式的定义
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
修饰符
- g(全文查找)
- i(忽略大小写)
- m(多行查找)
示例:
var re = new RegExp("a","gi"); //匹配所有的a或A
var re=/a/gi; //同上
字符类
//简单类
var re = /[abc123]/;//将匹配abc123这6个字符中一个
//负向类
re = /[^abc]/;//将匹配除abc之外的一个字符
//范围类
re = /[a-b]/;//将匹配小写a-b 26个字母
re = /[^0-9]/;//将匹配除0-9 10个字符之处的一个字符
//组合类
re = /[a-b0-9A-Z_]/;//将匹配字母,数字和下划线
元字符
特殊字符 | 描述 | 预定义类 | 描述 | 等同于 |
---|---|---|---|---|
换行符 | . | 匹配除换行符之外的任何一个字符 | IE下[ ],其它[ ] | |
回车符 | d | 匹配数字 | [0-9] | |
制表符 | D | 匹配非数字字符 | [^0-9] | |
f | 换页符(Tab) | s | 匹配一个空白字符 | [ fx0B] |
cX | 与X对应的控制字符 | S | 匹配一个非空白字符 | [^ fx0B] |
退格符(BackSpace) | w | 匹配字母数字和下划线 | [a-zA-Z0-9_] | |
v | 垂直制表符 | W | 匹配除字母数字下划线之外的字符 | [^a-zA-Z0-9_] |