JS day12—正则表达式

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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值