认识:
假设用户需要在 HTML 表单中填写姓名、地址、出生日期等。那么在将表单提交到服务器进一步处理前,JavaScript 程序会检查表单以确认用户确实输入了信息并且这些信息是符合要求的。
概念:
正则表达式(regular expression)是一个描述字符模式的对象。ECMAScript 的 RegExp 类,表示正则表达式,而 String 和 正则表达式都定义了,进行强大的【模式匹配】和【文本检索】与【替换】的函数。
在使用JS做验证的过程中,一个简单的验证规则的实现非常的麻烦。如:从杂乱的字符串中找数字
var str = "asd68asd687as6da78sd123123zcacas"
var linshi='';
var arr=[]
for(var i = 0 ; i < str .length ; i ++){
if(str.charAt(i)>=0&&str.charAt(i)<=9){
linshi+=str.charAt(i)
}else{
if(linshi!=''){
arr.push(linshi)
}
}
}
if(linshi!=''){
arr.push(linshi)
}
console.log(arr)
创建:
字面量var reg = /hello/ig;
构造函数var reg = new RegExp(“hello”,”ig”);
使用:
正则的方法 – test
test是用来检测字符串是否符合我们正则的标准
语法:正则.test(字符串)
返回值:boolean
正则的方法 – exec
exec是把字符串中符合条件的内容捕获出来
语法:正则.exec(字符串)
返回值:把字符串中符合正则要求的第一项以及一些其他信息,以数组的形式返回
【注】这个方法的具体功能比较丰富,但是字符串有替代方法,这里只需要简单了解即可。
字符串的方法(可以使用正则)
search
是查找字符串中是否有满足正则条件的内容
语法:字符串.search(正则)
返回值:有的返回开始索引,没有返回-1
replace
replace是将字符串满足正则条件的字符串替换掉
语法:字符串.replace(正则,要替换的字符串)
返回值:替换后的字符串
组成:
正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制匹配模式的方式。
元字符
l . : 匹配非换行的任意字符
l : 转译符号,把有意义的符号转换成没有意义的字符,把没有意义的字符转换成有意义的符号
l s : 匹配空白字符(空格/制表符/...)
l S : 匹配非空白字符
l d : 匹配数字
l D : 匹配非数字
l w : 匹配数字字母下划线
l W : 匹配非数字字母下划线
限定符
l *:前一个内容重复至少0次,也就是可以出现0~正无穷次
l +:前一个内容重复至少1次,也就是可以出现1~正无穷次
l ?:前一个内容重复0或者1次,也就是可以出现0~1次
l {n} : 前一个内容重复n次,也就是必须出现n次
l {n,} : 前一个内容至少出现n次,也就是出现n~正无穷次
l {n,m} : 前一个内容至少出现n次至多出现m次,也就是出现n~m次
l 限定符是 配合元字符使用的
边界符
l ^ : 表示开头
l : 表示结尾
l 边界符是限定字符串的开始和结束的
特殊符号
l () : 限定一组元素
l [] : 字符集合,表示写在[]里面的任意一个都行
l [^] : 反字符集合,表示写在[^]里面之外的任意一个都行
l - : 范围,比如a-z表示从字母a到字母z都可以
l | : 或,正则里面的或a|b表示字母a或者b都可以
l i : 表示忽略大小写,这个i是写在正则的最后面的
l g : 表示全局匹配