正则表达式
为什么要有这个正则表达式:因为查找是一个比较复杂的东西,我们更加准确快速找到自己想要的:
什么值正则表达式,他可以定义一种字符逻辑的公式,来和要查找的字符串做匹配,找到自己想要的。
定义规则:1、使用/规则/修饰符
var patt1 =/HelloCoolDog/i;
2、新创建一个RegExp对象,给两个参数分别为规则和修饰符
var patt2 = new RegExp("//HELLO/","i");
常用修饰符:
i:不区分大小写
var checkCode = "helloCooldog"; var str = prompt("请输入验证码"); var patt = /hellocooldog/i; var result = str.search(patt); document.write(result+"<br>");
g:全局匹配:从找到的下标开始一直往后找,直到字符串结束
var patt2 = /o/g; //g 全局查找 var result = str.replace(patt2,"O"); document.write(result);
字符模式:
[Hel]:从字符串里面任意去匹配字符串
var str = "He12ll255oCo66olDog"; var patt = /[Hel]/g; var patt1 = /[0-9]/g;
var patt2 = /[0-9]/ig;//ig既满足不区分大小写,又满足全局匹配 var result = str.match(patt1); document.write(result);
[0-9]:匹配任意一个数字,
[a-z]:匹配所有的小写字母
[A-Z]:匹配所有的大写字母
(a|x):匹配a或者x,a也能用[]
var patt3 = /([a-z]|[A-Z])/g;
常用的元字符:
/\w/:单词字符,包括所有字符和数字和下划线w是word的缩写
var str = "_=++___%$#@!He12ll255oCo66olDog"; var patt = /\w/g;//word var result = str.match(patt); document.write(result);
\s:空格s是space的缩写
var str = "_=++___%$#@ !He12ll255oCo66olDog"; var patt1 = /\s/g; var result = str.replace(patt1,"^"); document.write(result);
\d:数字 digital的缩写
var patt = /\d/g;
常用的量词
o+:找到一个或者多个o
var patt = /o+/g;
o*找到0个或者多个
var patt1 = /o*/g;
o?找到0个或者1个
var patt2 = /o?/g;
o{3}:指定了具体的个数只有3个
o{2,4}:指定了具体至少2个最多4个
o{2,}:指定了具体最少2个
var patt = /o{2}/g;//指定了o的个数 var patt = /o{2,4}/g;//指定至少2个最多4个 var patt = /o{2,}/g;//最少两个
^:必须以后面的内容开头 $:必须以后面的内容结尾
RegExp常用的两种方法:
Exec():返回的是找到符合正则表达式新的字符串
var patt = /\w+/g; var str = "good afternoon"; var result = patt.exec(str); document.write(result);
Test():返回的true或者false当字符串表达式满足正则表达式时为true否则为false
var str =prompt("请输入密码"); var patt = /^([a-z]|[A-Z])\w{5,17}$/; if(patt.test(str)){ alert("您输入的密码正确"); }else{ alert("对不起,您输入的密码不符合规范"); }