关于表单验证中常见的正则表达式以及写一个表单验证

关于表单验证中常见的语法数量词有:
x?: 当前x字符出现0次或1次
x+:当前x字符出现一次或多次
x*:当前x字符0次或多次
x{n}:当前x字符恰好出现n次
x{n,}:当前x字符至少出现n次
x{n,m}:当前x字符至少n次但不超过m次
【a-zA-Z0-9】:不区分大小写字母,数字字符

在js中如何定义一个正则:

var 变量名(reg)=/中间书写正则语法/;
使用正则表达式中的内置方法test(表单中输入的str),如果匹配会返回true
表单验证时:一般是规定边界匹配器
举个表单验证的例子


<script>        
 var str="12";          
 var reg=/[a-zA-Z0-9]/;      
  if(reg.test(str)){          
  alert("条件成立");      
    }                   
   </script>


一个完整的表单验证的例子:
定义当前的表单的正则规则为:
用户名:由3-14位的数字或者字母组成
密码:由8~16位的数字或者字母组成
确认密码:确认密码和密码的内容一致
邮箱:企业邮箱/QQ邮箱/
数字或者字母@数字或者字母(.com/.cn/.com.cn/…)

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>js表单验证</title>
<script>
 
//校验用户名:
function checkUserName(){
 //1.获取用户名的内容
    var username = document.getElementById("username").value ;
 //2.用户名:由4-14位的数字或者字母组成 
 var reg = /^[a-zA-Z0-9]{3,14}$/ ;
 //3.获取id="user_span"的span标签对象
 var userSpan = document.getElementById("user_span") ;
 //4.校验
 if(reg.test(username)){
  //成功,设置userSpan标签对象的innerHTML属性
  userSpan.innerHTML="当前用户名可用".fontcolor("green") ;
  return true ;;;
 }else{
  userSpan.innerHTML="用户名不可用".fontcolor("red") ;
  return false ;
 }
}
//密码的校验
function checkPwd(){
 //1.获取密码输入框的内容
 var pwd = document.getElementById("pwd").value ;
 //定义密码框的正则规则:密码:由6~16位的数字或者字母组成
 var reg = /^[a-zA-z0-9]{8,16}$/ ;
 //获取id="pwd_span" 标签对象
 var pwdSpan = document.getElementById("pwd_span") ;
 //校验
 if(reg.test(pwd)){
  pwdSpan.innerHTML ="当前密码可用".fontcolor("green") ;
  return true ;
 }else{
  pwdSpan.innerHTML ="当前密码不可用".fontcolor("red") ;
  return false ;
 }
}
//确认密码
function checkRePwd(){
 //分别获取密码框的内容以及确认密码框的内容
 var pwd = document.getElementById("pwd").value ;
 var rePwd = document.getElementById("repwd").value ;
 //获取id=“repwd_span”标签对象
 var repwdSpan = document.getElementById("repwd_span") ;
 if(pwd==rePwd){
  repwdSpan.innerHTML="与输入的密码一致".fontcolor("green") ;
  return true ;
 }else{
  repwdSpan.innerHTML="两次输入的密码不一致".fontcolor("red") ;
  return false ;
 }
}
//邮箱的校验
function checkEmail(){
 //获取邮箱内容
 var email = document.getElementById("email").value ;
 //定义的邮箱的正则:
 //数字或者字母@数字或者字母(.com/.cn/.com.cn/...)
 //.---> \.
 var reg = /^[a-zA-Z0-9]+@[a-zA-Z0-9]+(\.[a-zA-Z]{2,3}){1,2}$/ ;
 //获取id="email_span" 的标签对象
 var emailSpan = document.getElementById("email_span") ;
 //校验
 if(reg.test(email)){
  emailSpan.innerHTML="邮箱格式正确".fontcolor("green") ;
  return true ;
 }else{
  emailSpan.innerHTML="对不起,邮箱格式不正确".fontcolor("red") ;
  return false ;
 }
}
//校验所有的表单的内容,如果都符合条件,才能提交成功
function checkAll(){
 if(checkUserName() && checkPwd() && checkRePwd() && checkEmail()){
  //表示提交成功
  return true ;
 }else{
  //提交失败!
  return false ;
 }
}
</script>
 </head>
 <body>
 <!--
onsubmit事件:表单提交是否成功,true,表示提交成功
false表示提交失败
 
-->
<form action="backend.html" method="post" onsubmit="return checkAll()  ">
用户名:<input type="text" id="username" onblur="checkUserName()" /><span id="user_span"></span><br />
密&nbsp;&nbsp;&nbsp;码:<input type="password" id="pwd" onblur="checkPwd()" /><span id="pwd_span"></span><br />
确认密码:<input type="password" id="repwd" onblur="checkRePwd()" /><span id="repwd_span"></span><br />
邮箱:<input type="text" id="email" onblur="checkEmail()" /><span id="email_span"></span><br />
<input type="submit" value="注册" />
</form>
 </body>
</html>
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值