【JavaWeb】JavaScript_js中的正则表达式及应用

1.在js中正则表达式的写法:

var reg = /正则表达式/;

2.正则表达式中校验字符串是否符合正则规则的方法:test()

if(reg.text(str)){

}


3.常用的语法:

(1)X*:表示X字符出现0次或多次
(2)X?:表示X字符出现1次或0次
(3)X+:表示X字符出现1次或多次 (多次) 

例如:邮箱:zhangsan@istone.com.cn 数字或字母+@数字或字母+(\.大小写字母{2,3}){1,2}
(4)X{n}:X字符恰好出现n次
(5)X{n,}:X字符至少出现n次
(6)X{n,m}:X字符至少出现n次,但是不超过m次


4.js中的两种匹配情况:

(1)不完全匹配:只要字符串的部分内容符合正则规则,就会被校验成功

(2)完全匹配:加上边界匹配器

以“^”开头——>以“$”结尾




练习:使用正则表达式校验表单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用正则表达式校验表单</title>
<!--
正则规则:
	用户名:4-14位的数字或者字母组成
    密码:  6-16位的数字或者字母组成
    确认密码:两次输入的密码必须一致
    邮箱:数字或者字母@数字或者字母.(com/cn/.con.cn/Istone.com.cn) 
-->
<script type="text/javascript">
	//校验用户名
	function checkUser(){
		
		//获取用户输入的内容
		var user = document.getElementById("user").value ;
		//获取id="nameTip"所在的span标签对象
		var nameTip = document.getElementById("nameTip") ;
		
		//定义用户名的规则:用户名:4-14位的数字或者字母组成
		var reg = /^[a-zA-Z0-9]{4,14}$/ ;
		
		//开始校验
		if(reg.test(user)){
			//成功了,
			//设置span标签对象的innerHTML属性,进行提示
			nameTip.innerHTML = "用户名正确,符合正则规则".fontcolor("green") ;
			return true ;
		}else{
			//失败
			nameTip.innerHTML ="用户名不正确,不符合正则规则".fontcolor("red") ;
			return false ;
		}
		
	}
	
	//校验密码
	function checkPwd(){
		//获取输入的密码的内容
		var userPwd = document.getElementById("userPwd").value ;
		//获取id="pwdTip"所在的span标签对象
		var pwdTip = document.getElementById("pwdTip") ;
		
		//定义密码的正则规则: 密码:  6-16位的数字或者字母组成
		var reg = /^[a-zA-Z0-9]{6,16}$/ ;
		//校验
		if(reg.test(userPwd)){
			pwdTip.innerHTML = "密码输入正确,符合正则规则".fontcolor("green");
			return true ;
		}else{
			pwdTip.innerHTML = "密码输入不符合正则规则".fontcolor("red");
			return false ;
		}
	}
	
	//确认密码
	function checkRePwd(){
			//获取输入的密码的内容
		var userPwd = document.getElementById("userPwd").value ;
		//在获取确认密码框中的内容
		var rePwd = document.getElementById("rePwd").value ;
		
		//在获取id="rePwdTip"的span标签对象
		var rePwdTip = document.getElementById("rePwdTip") ;
		//两次输入密码必须一致
		if(userPwd==rePwd){
			rePwdTip.innerHTML = "两次密码输入一致".fontcolor("green");
			return true ;
		}else{
			rePwdTip.innerHTML = "两次密码输不一致".fontcolor("red");
			return false ;
		}
	}
	
	//邮箱的校验
	function checkEmail(){
		//获取邮箱的内容
		var email = document.getElementById("email").value ;
		//获取id="emailTip"所在的span标签对象
		var emailTip = document.getElementById("emailTip") ;
		
		//定义邮箱的正则规则:数字或者字母@数字或者字母(.com/.cn/.con.cn/Istone.com.cn
		var reg = /^[a-zA-Z0-9]+@[a-zA-Z0-9]+(\.[a-zA-z]{2,3}){1,2}$/ ;
		
		//校验
		if(reg.test(email)){
			emailTip.innerHTML = "邮箱符合正则规则".fontcolor("green") ;
			return true ;
			
		}else{
			emailTip.innerHTML = "邮箱不符合正则规则,请重新输入".fontcolor("red");	
			return false ;
		}

	}
	
	
	//最终提交表单的时候,有一个表单中有问题,就不能提交成功,所以整体在进行校验
	function checkAll(){
		//需要分别知道:用户名,密码,确认密码,邮箱是否成功了
		if(checkUser() && checkPwd() && checkRePwd() &&checkEmail()){
			return true ;
		}else{
			return false ;
		}	
	}
</script>
</head>

<body>
<!--form表单的onsubmit事件,如果返回时true,表示提交表单,false,不提交表单-->
<form action="03.后台页面.html" method="post" οnsubmit="return checkAll()">
用户名:<input type="text" id="user" οnblur="checkUser()" /><span id="nameTip"></span><br />
密  码:<input type="password" id="userPwd" οnblur="checkPwd()" /><span id="pwdTip"></span><br/>
确认密码:<input type="password" id="rePwd" οnblur="checkRePwd()" /><span id="rePwdTip"></span><br/>
邮  箱:<input type="text" id="email" οnblur="checkEmail()" /><span id="emailTip"></span><br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>


效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值