1.正则:字符串正确的规则,降低服务器压力--(用于表单验证)
正则表达式(regular expression)是一个描述字符规则的对象。
2.正则对象的构建:
1.字面量:
var reg = /普通字符或者特殊字符/修饰符
2.构造方法:
var reg=new RegExp("格式控制字符串",["修饰符"])
3.正则表达式的组成:
正则格式控制字符串:
格式字符串:1.普通字符
2. 特殊字符:单个字符,组合字符,各种括号
正则中的特殊字符:
单个字符:
^:正则开始
$ : 正则结束
. : 元字符, 表示任意一个字符
\. : 表示转义字符 \.表示.
+: 表示其前面紧挨着的字符至少出现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] 任意一个中文字符
4.正则API:
1.test:
功能:判断目标字符串是否满足正则格式,返回布尔值
参数:test(目标字符串)
返回值:布尔值
var reg =/a/;//判断目标字符串中是否含有a
console.log(reg.test("abc"));//true
2.exec:
功能:判断目标字符串是否满足正则对象的格式,
将满足格式的子串返回至一个长度为1的数组
参数:exec(目标字符串)
返回值:满足条件的子串
g修饰符 golble全局
var reg = /\d+/g;
var str = "123a456b789";
console.log(reg.exec(str)[0]);//123
console.log(reg.exec(str)[0]);//456
console.log(reg.exec(str)[0]);//789
3.search:
功能:返回匹配的子串的首位置下标,
参数:search(正则对象);
返回值:找到返回子串下标,找不到返回-1
i修饰符:忽略大小写
var str = "HelloWorld";
var reg = /wor/i;
console.log(str.search(reg));//5
4.match
功能:根据正则对象格式,返回匹配子串,存入数组
参数:match(正则对象)
返回值:数组
var reg = /\d+/g;
var str = "123a456b789";
console.log(str.match(reg));[123,446,789]
5.replace 方法
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.replace(rgExp,replaceText)
var str ="gongjunjie de ge bi zhu zhe gongjunjie";
str = str.replace(/gongjunjie/g,"老王");
console.log(str);//老王 de ge bi zhu zhe 老王
6.表单的焦点强化验证:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="ture.html" method="get">
姓名:<input type="text" /><span></span><br>
密码:<input type="text" /><span></span><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
<script type="text/javascript">
var oinput=document.querySelectorAll("input");
var of=document.querySelector("form");
var flagName=false;
var flagPwd=false;
var ospan=document.querySelectorAll("span");
//姓名失焦时执行任务
oinput[0].onblur=function(){//失焦时执行代码
var reg = /^\w{6,18}$/;
if(reg.test(this.value)){
flagName=true;
ospan[0].innerHTML="格式输入正确";
}else{
ospan[0].innerHTML="格式错误";
}
}
//密码失焦时执行代码
oinput[1].onblur=function(){
var reg =/^.{6,}$/;
if(reg.test(this.value)){
flagPwd=true;
ospan[1].innerHTML="格式输入正确";
}else{
ospan[1].innerHTML="格式错误";
}
}
of.onsubmit=function(){
if(flagName&&flagPwd){
return true;
}else{
return false;
}
}
</script>