Day8:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[]:备选字符集,只能多选一,一个[]只能匹配一位字符 []:开头加^,除了xx都行 []:-,标识备选字符的范围 量词:修饰前一位字符出现的次数 {min,max}:最少min个,最多max个 {min,}:最少min个,最多不限制 {num}:固定num个长度
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
验证座机号码:\d{3,4}-\d{7,}
一、特殊的数量词
1、+:至少出现一次,不限制出现次数
2、*:可有可无,不限制出现次数
3、?:可有可无,最多只能出现一次
4、分组:改变模式的匹配顺序
身份证号:\d{15}(\d{2}[0-9xX])?
手机号:(\+86)?\s+1[3,5,8]\d{9}
中文姓名:[\u4e00-\u9fa5]{2,6}
邮箱:\w+@\w+([-]\w+)*(\.\w+)+
注:如何正文出现+ * ?都要使用\转义
二、指定匹配位置
1、^:整个正则表达式的开头,表示以xxx开始
2、$:整个正则表达式的结尾,表示以xxx结束
3、?=x:预判,前一个字符之后,必须紧跟xxx
4、?!x:预判,前一个字符之后,必须不能跟xxx
三、RegExp对象
1、定义:专门封装一条正则表达式,提供使用正则表达式的常用API
2、如何使用RegExp对象:
(1)1、创建
a、var RegExp=/正则表达式/ig
b、var boolean=regExp.test("被检查的字符串") 验证通过返回true,否则返回false,(此方法注意了,它只要找到就返回true,坑货,解决办法:正则表达式前加^,后加$)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> var regexp=/^\w+@\w+([-]\w+)*(\.\w+)+$/; while(true){ var input=prompt("请输入邮箱:"); if(regexp.test(input)){ document.write("注册成功"); break; }else{ alert("邮箱格式有误"); } } </script> </head> <body> </body> </html>
c、验证要求完整匹配,查找要求部分匹配
d、查找:exec 既可以查找关键字的位置,又能找到关键字的内容,var arr=regExp.exec("被查找的内容") arr[0]:找到的关键字内容,arr.index属性:关键字的位置,exec方法每次也只能找1个,但是它可以每次自动修改regExp对象的lastIndex属性:表示下次开始匹配的位置
e、indexOf不支持正则,search支持正则,每次只能找1个,match可以得到所有内容,但是得不到位置
(2)2、调用API