正则表达式
为什么要有这个正则表达式:因为查找是一个比较复杂的东西,我们想要更加准确快速找到自己想要的。
什么是正则表达式:它可以定义一种字符串逻辑的公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑
定义规则:
1、使用/规则/修饰符,修饰符可以省略
Var patt = /hellocooldog/i;
2、新创建一个RegExp对象,给两个参数分别为规则和修饰符,修饰符可以省略
Var patt = new RegExp(“//hello”,”i”);
常用的修饰符
i:不区分大小写
Var str = “HelloCoolDog”;
Var patt1 = /hellocooldog/i;
Var result = str.search(patt1);
Document.write(result);
g:全局匹配,从找到的下一个下标开始再继续往后查找,一直到字符串结束
Var patt2 = /o/g;
//全局查找
Var result = str.replace(patt2,”O”);
Document.write(result);
字符模式
[Hel]:从里面字符中任意一个去匹配字符串
var str = "HelloCoolDog";
var patt= /[Hel]/g;//随机取一个
varresult = str.match(patt);
document.write(result);//H,e,l,l,l
[0-9]:匹配任意一个数字
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[0-9]/g;//随机取一个
varresult = str.match(patt);
document.write(result);//1,2,3,4,6
[a-z]:匹配所有小写字母
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[a-z]/g;//随机取一个ig可以一起用
varresult = str.match(patt1);
document.write(result);//e,l,l,o,o,o,l,o,g
[A-Z]:匹配所有大写字母
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[A-Z]/g;//随机取一个ig可以一起用
varresult = str.match(patt1);
document.write(result);//H,C,D
(a|x):匹配a或x,a也能用[]来代替
var str = "1H2el3loCoo4lDog6";
varpatt1 = /[a-z]|[A-Z]/g;//随机取一个ig可以一起用
varresult = str.match(patt1);
document.write(result);//H,e,l,l,o,C,o,o,l,D,o,g
常用的元字符:
\w:单词字符 包括所有字母和数字和下划线w是word的缩写
var str = "1H2el_3loCo_o4l+Do-g6";
var patt= /\w/g;//word
varresult = str.match(patt);
document.write(result);
\s:空格,space的缩写
var str = " H2el_3loCo_ 4l+Do-g6";
var patt= /\s/g;//space
varresult = str.replace(patt,"&");
document.write(result);
\d:数字 digital的缩写
Var patt = /\d/g;//digital 数字
常用的量词
o+:找到一个或多个o
var str ="1H2el_3loCoo_o4l&Doooog6";
var patt= /oo+/g;
varresult = str.match(patt);
document.write(result);
o*:匹配零个或多个o
var str = "1H2el_3looCo_o4l&Doooog6";
var patt= /oo*!/g;
varresult = str.match(patt);
document.write(result);
o?:零个或一个o
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /oo?/g;
varresult = str.match(patt);
document.write(result);
o{4}:只会匹配找到的四个o
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /o{4}/g;
varresult = str.match(patt);
document.write(result);
n{2,3}:最少两个,最多3个
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /o{2,3}/g;//最少两个,最多3个
varresult = str.match(patt);
document.write(result);
o{2,}:最少2个
var str ="1H2el_3looCo_o4l&Doooog6";
var patt= /o{2,}/g;
varresult = str.match(patt);
document.write(result);
^n:必须以后面的内容开头
var str = "1Hello huadian";
var patt= /^[123]\w+/;
varresult = str.match(patt);
document.write(result);
n$:必须以前面的内容结尾
RegExp常用的两种方法
exec():返回的是找到符合正则表达式新的字符串
test():返回的true或者false当字符串满足正则表达式是为true否则为false。
var str = prompt("请输入密码");
var patt= /([a-z]|[A-Z])\w{5,17}/;
alert(patt.test(str));
if(patt.test(str)){
alert("您输入的密码正确");
}else{
alert("对不起,您输入的密码不符合规范");
}