什么是正则表达式?
正则表达式是一种用来查找或者匹配的一种模式,这种模式具有一定的特征,能通过一些语法描述出来
比如 Email地址,IP地址,身份证号码,电话号码等
首先我们先将之前写的验证表单的例子中 姓名和年龄的验证说一下 让大家大致了解一下
姓名 var reName = /^[\u4e00-\u9fa5]+$/;
/ / 是定义方法
^ 代表开始 $代表结束 [\u4e00-\u9fa5]这里面是unicode编码 是一种汉字编码 +加号代表出现一次或多次 至少出现一次
年龄var reAge = new RegExp("^[1-9][0-9]?$")
new RegExp("nowamagic") 也是一种正则表达式定义方法
[1-9]表示从1-9当中的一个数字
[0-9]同上
?表示 最多出现一次
上面只是让大家初步了解一下正则表达式的表达方式 下面有一些定义 和 正则表达式的方法 仅供参考
如何定义正则表达式?
第一种定义方法
var reName = new RegExp("nowamagic");
var reName = new RegExp("nowamagic","i");//忽略大小写 ignoreCase:忽略大小写
第二种定义方法:
javascript中正则表达式的第二种定义方法(perl风格) perl=也是一个脚本语言
var reName = /nowamagic/;
var reName = /nowamagic/i;
正则表达式方法:
test -- RegExp的test方法用来测试字符串是否匹配给出的匹配模式,返回布尔值;
exec -- RegExp的exec方法返回包含第一个匹配的数组或null;
match -- String的match方法返回包含所有匹配子字符串的数组;
replace -- String的replace方法完成string的替换操作,支持正则表达式;
search -- 与String的indexof方法类似,不同的是search支持正则表达式,而不仅仅是字符串;
split -- 按照一定规则拆分字符串并将子字符串存储到数组中的String方法。
正则表达式中需要转义的字符
.,\,/,*,?,+,[,(,),],{,},^,$,|
正则表达式分组
var reNum = /[0-9]/;
var reLetter = /[a-zA-Z]/;
特殊字符
\d 任何一个数字字符,等价于[0-9]
\D 任何一个非数字字符,等价于[^0-9]
\w 任何一个字母数字或下划线字符,等价于[a-zA-Z_]
\W 任何一个非字母数字和下划线字符,等价于[^a-zA-Z_]
\s 任何一个空白字符,包括换页符、换行符、回车符、制表符和垂直制表符,等价于[\f\n\r\t\v]
\S 任何一个非空白字符,等价于[^\f\n\r\t\v]
. 换行和回车以外的任何单个字符,等价于[^\n\r]
量词
? 出现零次或一次,最多一次
* 出现任意次(零次、一次、多次)
+ 出现一次或多次,至少一次
{n} 能且只能出现n次
{n,m} 至少出现n次,最多出现m次