正则表达式:用来检索、替换、拆分某个模式的文本内容(数据验证、文本替换、内容检索、过滤内容)
1.创建
1)通过构造函数创建
var reg= new RegExp('abc');
2)通过字面量创建正则表达式
var reg= /abc/;
示例
var find= /abc/;
//用正则规则去匹配具体数据
var wan='www.baidu.com';
//查询wan的字符串是否存在reg字符串
var result=find.test(wan);
document.write(result);
3)返回值为true/false
2.原子
只要被匹配内容中有任何一部分是符合正则要求的,那么就为匹配成功,返回true
\d
m\d 匹配m后面跟随的任意一个数字(0-9)
\d\d\d 匹配到任意三个相联的数字
\D 匹配任意非数字
\w 匹配任意一个英文字母,数字或者下划线
\W 匹配除了英文字母,数字或者下划线
\s 匹配任意一个空白字符
\S 匹配任意一个除了空白字符的字符
注:原子可以组合使用
3.元字符
.用来匹配除了换行符之外的任意内容
\反斜线表示转义
.用来匹配一个.,不在具有任何意义
|表示或
var find1=/\./;
var chuan1='wwwbaidu.com';
var res1=find1.test(chuan1);
document.write(res1);
if(res1){
document.write("正确");
}
else{
document.write("错误");
}
4.原子表(匹配范围中的一个字符)
1.var find=/[红绿黄]灯/——表示匹配的为红灯,绿灯,黄灯
2.var find=/[5-9]/——表示匹配5,6,7,8,9
3.var find=/[a-z]/——表示匹配的是小写a-z
5.量词
1.var find=/手机号\d{11}/——表示手机号后面数字重复11次
2.var find=/昵称\d,6/——表示昵称的数字最少是6个
3.var find=/密码\d{6,9}/——表示密码的数字个数的范围是6-9个
4.var find=/爱好\d*/——表示爱好的个数可以是0或者任意个
5.var find=/上传附件\d?/——表示上传附件的个数可以是0或者1个
6.var find=/家属\d+/——表示家属的个数最少是1个
6.贪婪与吝啬
贪婪:默认返回的是满足条件的最长结果
var find0=/密码\d{6,9}/;
吝啬:默认返回的是满足条件的最短结果
var find0=/密码\d{6,9}?/;
var pas='密码45612345';
var res0=find0.exec(pas);
//可以查询匹配到什么内容确定为true
console.log(res0);
console.log('匹配到的内容'+res0[0]);
console.log('在几号位置匹配到'+res0.index);
console.log('被匹配的原始字符串'+res0.input);
7.匹配标签
var find=/<p><\/p>/;
标签中间内容可以是任意内容
8.边界
var find=/手机号^\d{11}$/
^表示开始$表示结束
表示手机号后面数字只能是11次
9.手机号实例
var find=/手机号^1(55|38|80)\d{8}$/
表示用1开始第二三位为55或38或80后面有8位数字可以是任意内容