正则表达式验证表单

用正则表达式实现的js表单验证,判断用户的输入是否是正确的。

<!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>
<script src="js/validate.js"></script>
<link href="css/validate.css" rel="stylesheet" type="text/css" />
</head>


<body>
<table class="main" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><img src="images/yezi.gif" alt="logo" /></td>
  </tr>
  <tr>
    <td class="hr_1">新用户注册</td>
  </tr>
  <tr>
    <td style="height:10px;"></td>
  </tr>
  <form action="succeed.html" method="post" name="myform" id="myform" οnsubmit="return checkAll(this)">
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="left">用户名:</td>
    <td class="center"><input id="user" type="text" class="in" οnkeyup="checkAll(this)" /></td>
    <td><div id="user_prompt"></div></td>
  </tr>
  <tr>
    <td class="left">密码:</td>
    <td class="center"><input id="pwd" type="password" class="in" οnkeyup="checkAll(this)"/></td>
    <td><div id="pwd_prompt"></div></td>
  </tr>
  <tr>
    <td class="left">确认密码:</td>
    <td class="center"><input id="repwd" type="password" class="in" οnkeyup="checkAll(this)" /></td>
    <td><div id="repwd_prompt"></div></td>
  </tr>
   <tr>
    <td class="left">电子邮箱:</td>
    <td class="center"><input id="email" type="text" class="in" οnkeyup="checkAll(this)" /></td>
    <td><div id="email_prompt"></div></td>
  </tr>
    <tr>
    <td class="left">手机号码:</td>
    <td class="center"><input id="mobile" type="text" class="in" οnkeyup="checkAll(this)" /></td>
    <td><div id="mobile_prompt"></div></td>
  </tr>
  <tr>
    <td class="left">生日:</td>
    <td class="center"><input id="birth" type="text" class="in" οnkeyup="checkAll(this)" /></td>
    <td><div id="birth_prompt"></div></td>
  </tr>
  <tr>
  <td class="left">地址:</td>
  <td colspan="2">
    <select id="province" οnchange="changeCity()">
        <option>--选择省份--</option>
        </select>
    <select id="city">
        <option>--选择市/区--</option>
        </select>
    </td>
  </tr>
   <tr>
    <td class="left"> </td>
    <td class="center"><input name="" type="image" src="images/register.jpg" /></td>
    <td> </td>
  </tr>
</table>
</td>
  </tr>
  </form>
</table>
</body>
</html>
JS代码

function $(id){//获取ID对象
return document.getElementById(id);
}
function $v(id){//获取ID对应的值
return document.getElementById(id).value;
}

String.prototype.trim=function(){//判断是否存在空格
return this.replace(/(^\s*)|(\s*$)/g,"");$v("birth").trim()==""
}

//检查表单的输入是否全部正确
var reg;//正则表达式
function checkAll(obj){
var id=obj.id;//获得ID
var divId;//提示的ID;

if(id=="myform"){//表单提交的时候,判断是否为空
if($v("user").trim()==""){//判断用户名是否为空
id="user";//把id赋值,为了在相应的区域显示对应的错误信息。以下同理
}else if($v("pwd").trim()==""){//判断密码是否为空
id="pwd";
}else if($v("repwd").trim()==""){//判断再次输入的密码是否为空
id="repwd";
}else if($v("email").trim()==""){//判断电子邮箱是否为空
id="email";
}else if($v("mobile").trim()==""){//判断手机号码是否为空
id="mobile";
}else if($v("birth").trim()==""){//判断生日是否为空
id="birth";
}
divId=id+"_prompt";//获得提示的ID;
$(divId).className="error_prompt";//显示错误提示的样式
$(divId).innerHTML="输入不能为空";//错误的提示文本
return false;
}

divId=id+"_prompt";//获得提示的ID;
$(divId).className="error_prompt";
if(id=="user"){//用户名的验证
reg=/^[a-zA-Z][a-zA-Z0-9]{3,15}$/;//验证用户名的正则表达式
if(reg.test(obj.value)==false){
$(divId).innerHTML="用户名由英文字母和数字组成的4-16位字符,以字母开头";
return false;
}
}else if(id=="pwd"){//密码的验证
reg=/^[a-zA-Z0-9]{6,16}$/;//验证密码的正则表达式
if(reg.test(obj.value)==false){
$(divId).innerHTML="密码由英文字母和数字组成的6-16位字符";
return false;
}
}else if(id=="repwd"){//确认密码的验证
if($v("pwd")!=$v("repwd") ){
$(divId).innerHTML="两次输入的密码不一致";
return false;
}
}else if(id=="email"){//电子邮箱的验证
reg=/^\w+@\w+(\.[a-zA-Z]{2,3}){1,2}$/;//验证电子邮箱的正则表达式
if(reg.test(obj.value)==false){
$(divId).innerHTML="邮箱格式不正确";
return false;
}
}else if(id=="mobile"){//手机号码的验证
reg=/^\d{11}$/;//验证手机号码的正则表达式
if(reg.test(obj.value)==false){
$(divId).innerHTML="手机号码格式不正确";
return false;
}
}else if(id=="birth"){//生日的验证
reg=/^((19\d{2})|(200\d))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|[30-1])$/;
if(reg.test(obj.value)==false){
$(divId).innerHTML="生日格式不正确,格式如:1991-1-1或1991-01-01";
return false;
}
}
$(divId).innerHTML="";//提示内容清空
$(divId).className="ok_prompt";//输入正确的提示样式
return true;

}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值