目录
一、正则对象的创建
1.构造方法
var reg=new RegExp(“格式控制字符串”,[“修饰符”]);
var reg=new RegExp("a")//判断目标字符串是否包含一个a
test:判断,目标字符串是否满足正则格式,返回布尔值
参数:test(目标字符串)
返回值:布尔值
console.log(res.test("abc"))
2.字面量方法
var reg=/格式控制字符串/修饰符;
var reg=/a/;
二、正则格式字符串
格式字符串:普通字符,
特殊字符:a、单个字符
b、组合字符
c、各种括号
单个字符:
^:正则开始
$ : 正则结束
. : 元字符, 表示任意一个字符
\. : 表示转义字符 \.表示.
+: 表示其前面紧挨着的字符至少出现1次 等价{1,}
* :表示其前面出现的字符至少出现过0次 等价{0,}
?: 表示其前面出现的字符至少出现过0次,至多1次 等价{0,1}
| : 表示或者
组合字符:
\d : 0-9之间的任意一个数字 \d只占一个位置
\D : 除了\d
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\W : 除了\w
\s : 空格或者空白等
\S : 除了\s
括号:
{m,n}表示括号前面紧挨着的字符至少出现m个,至多出现n个 : 以b开头 至少3个a 至多5个 a /^ba{3,5}&/
{m}表示括号前面紧挨着的字符只能出现m个
{m,}表示括号前面紧挨着的字符至少出现m个
[] 表示括号内的任意一个字符
[wd3h]
[a-z]表示任意一个小写字母 [a-zA-Z0-9]
[^ ]表示非括号内的任意一个字符
()一般与或连用 表示优先级
[\u4e00-\u9fa5] 任意一个中文字符
<script>
var reg=/a/;//包含一个a
var reg=/^a$/;//只包含一个a
var reg=/^ba{3,5}$/;//以b开头,至少3个a,至多5个a
var reg=/^5{6}$/;//六个五
var reg=/^\d{6}$/;//六位数字
var reg=/^\w{6,18}$/;//定义一个由数字字母下划线组成的用户名,范围在6,18之间
var reg=/^\D\w{5,17}$/;//定义一个由数字字母下划线组成的用户名,开头不能是数字,范围在6,18
var reg=/^[a-zA-Z]\w{5,17}$/;//开头是字母组成
var reg=/^.{6,}$/;//密码,至少六位
var reg=/^www\.baidu\.com/;//网址中的点要用到转译字符
var reg=/^1[35]\d{9}$/;//以13或15开头的手机号
var reg=/^1(3|5)\d{9}$/;//以13或15开头的手机号
var reg=/^(13|15)\d{9}$/;//以13或15开头的手机号
var reg=/^[\u4e00-\u9fa5]{2}$/;//两个中文字符
</script>
test():正则表达式方法:验证某个字符串是否符合某个正则规范
三、密码强度验证
<script>
var regNum=/^\d+$/;//至少有
var regLetter=/^[a-zA-Z]+$/;
var regChar=/^[!@#$]+$/;
var _regNum=/\d+/;//包含
var _regLetter=/[a-zA-Z]+/;
var _regChar=/[!@#$]+/;
var mText=document.querySelector("input")
var mBut=document.querySelector("button")
mBut.onclick=function(){
if(regNum.test(mText.value)||regLetter.test(mText.value)||regChar.test(mText.value)){
alert('弱')
}else if(_regNum.test(mText.value)&&_regLetter.test(mText.value)&&_regChar.test(mText.value)){
alert("强")
}else{
alert("中")
}
}
</script>
四、表单验证
action:提交的服务器地址
method:数据提交的方式,默认为get
get:五菱宏光,效率高,安全性低,携带数据量小
post:武装押运,效率低,安全性高,携带数据量大
简易版
<script>
var mText=document.querySelectorAll("input[type=text]")
var mF=document.querySelector("form")
mF.onsubmit=function(){
var regName=/^\w{6,18}$/;
var regPas=/^.{6,}$/;
if(!regName.test(mText[0].value)){
return false;
}
if(!regPas.test(mText[1].value)){
return false;
}
return true
}
</script>
五。表单的焦点强化验证
<script>
var mText=document.querySelectorAll("input[type=text]")
var mF=document.querySelector("form")
var mSpan=document.querySelectorAll("span")
var flagName=false;
var flagPas=false;
mText[0].onblur=function(){
var reg=/^\w{6,18}$/;
if(reg.test(this.value)){
flagName=true;
mSpan[0].innerHTML="格式正确"
}else{
flagName=false;
mSpan[0].innerHTML="错误"
}
}
mText[1].onblur=function(){
var reg=/^.{6,}$/;
if(reg.test(this.value)){
flagPas=true;
mSpan[1].innerHTML="格式正确"
}else{
flagPas=false;
mSpan[1].innerHTML="错误"
}
}
mF.onsubmit=function(){
if(flagName&&flagPas){
return true;
}else{
return false;
}
}
</script>
六、正则相关的方法
test
功能:判断目标字符串是否满足正则对象的格式
参数:test(目标字符串)
返回值:布尔值
exec
功能:判断目标字符串是否满足正则对象格式,将满足格式的子串返回至一个长度为1的数组
参数:exec(目标字符串)
返回值:满足条件的子串
g修饰符 golble全局
var reg=/^\d+$/g;
var str="123a456b789"
console.log(reg.exec(str)[0]);
console.log(reg.exec(str)[0]);
console.log(reg.exec(str)[0]);
第一次取出123,第二次456,第三次789;不加g只能取到123
字符串相关方法:将正则作为参数
search
功能:返回匹配的子串的首位之下标
参数:search(正则对象)
返回值:找到返回下标,找不到返回-1;
i修饰符:忽略大小写
var str="HellowWorld"
var reg=/wor/i;
console.log(str.search(reg));
match:
功能:根据正则对象格式,返回匹配子串,存入数组
参数:match(正则对象)
返回值:数组
var reg=/\d+/g;
var str="123a456b789";
console.log(str.match(reg));
repalce
返回根据正则表达式进行文字替换后的字符串的复制
stringObj.replace(regExp,replaceText)
var str="111 ge bi zhu zhe 111"
str=str.replacr(/111/g,"老王");
console.log(str);