javascript通用表格验证程序
<html>
<head>
<title>通用表格验证程序</title>
<script type="text/javascript">
/*------------通用表单验证程序,此程序可以验证电话号,手机号,身份证号,电子邮件,用户名,文本域等表单
调用参数设置:checkform(fName,obj,minl,maxl,hideCode)
--1.email:调用验证电子邮件程序
| 2.mobile:验证手机号
| 3.idcard:身份证
fName--| 4.phone.电话号码
| 5.username:用户名
| 6.textlength:限制字数
|--
通用参数设置:___
| 1.obj.表单对象
|
| 2.Minl.要求最小长度
|
| 3.Maxl.要求最大长度
|
|__4.hideCode.出错后提示词(本例省略)
*/
function checkform(fName,obj,minl,maxl,hideCode)//参数:函数识别名,需验证对象,最小长,最大长,提示词
{
switch(fName)
{
case "email"://验证电子邮件
return(checkEmail(obj,minl,maxl,hideCode));
break;
case "mobile"://验证手机号码
return(checkMobile(obj,minl,maxl,hideCode));
break;
case "idcard"://验证身份证号
return(checkIDcard(obj,minl,maxl,hideCode));
break;
case "phone"://验证电话号码
return(checkPhone(obj,minl,maxl,hideCode));
break;
case "username"://验证用户名
return(checkUserName(obj,minl,maxl,hideCode));
break;
case "textlength"://限制字数
return(checkCodeLength(obj,minl,maxl,hideCode));
break;
default:
alert("程序引用错误,需要的参数只能为:\n1.")
return;
break;
}
}
function checkPhone(obj,Minl,Maxl,hideCode)
{
//验证电话号码程序
var objvalue=obj.value;
if(objvalue.length<Minl||objvalue.length>Maxl)
{
alert("对不起,输入的长度不符合要求");
return false;
}
var reg=/^\d+$/
if(!reg.test(objvalue))
{
alert("电话号码只能由数字组成");
obj.focus();
return false;
}
}
function checkUserName(obj,Minl,Maxl,hideCode)
{
//验证用户名程序,限制只能输入英文或数字
var objvalue=obj.value;
if(objvalue.length<Minl||objvalue.length>Maxl)
{
alert("用户名长度限于"+Minl+"个和"+Maxl+"个字符之间,请重新输入");
obj.focus();
return false;
}
var reg=/^\w+$/
if(!reg.test(objvalue))
{
alert("用户名只允许包含数字,英文或下划线");
obj.focus();
return false;
}
}
function checkIDcard(obj,Minl,Maxl,hideCode)
{
//验证身份证程序
var objvalue=obj.value;
var reg=/^\d{17}\w$/
if(!reg.test(objvalue))
{
alert("身份证输入不正确\n二代身份证只能为18位字符,且前17位必须全是数字");
obj.focus();
return false;
}
var bYear=objvalue.substr(6,4);
var bMonth=objvalue.substr(10,2);
var bDay=objvalue.substr(12,2);
var thisday=new Date();
var iYear=thisday.getFullYear();
if(bYear<1900)
{
alert("您年龄也太大了吧");
obj.focus();
return false;
}
bYear=bYear*1;
bMonth=bMonth*1;
bDay=bDay*1;
iYear=iYear*1;
if((bYear+10)>2008)
{
alert("您年龄也太小了吧");
obj.focus();
return false;
}
if(bMonth==0||bMonth>12)
{
alert("有这个月份出生的人吗");
obj.focus();
return;
}
if(bDay==0||bDay>31)
{
alert("有这一天出生的人吗");
obj.focus();
return false;
}
}
function checkEmail(obj,Minl,Maxl,hideCode)
{
//验证EMAIL程序
var objvalue=obj.value;
if(objvalue.length<Minl||objvalue.length>Maxl)
{
alert("对不起,电子邮件字符长度不应该小于"+Minl+"或不应该长于"+Maxl+"个字符");
obj.focus();
return false;
}
var reg=/^\w+@\w+.(\w+.\w+|\w+)$/;
if(!reg.test(objvalue))
{
alert("请正确输入电子邮件地址");
obj.focus();
return false;
}
}
function checkCodeLength(obj,Minl,Maxl,hideCode)
{
//验证字数程序
var valueLength=obj.value.length;
if(valueLength<Minl||valueLength>Maxl)
{
alert("对不起,您输入的长度不符合要求,不应该少于"+Minl+"个字符或多于"+Maxl+"个字符");
obj.focus();
return false;
}
}
function checkMobile(obj,Minl,Maxl,hideCode)
{
var objvalue=obj.value;
var reg=/(130|131|132|133|134|135|136|137|138|139|150|156|157|158|159)\d{8}/;
if(!reg.test(objvalue))
{
alert("请输入合法的手机号码!");
obj.focus();
return false;
}
}
function checkQQ(obj,Minl,Maxl,hideCode)
{
//验证QQ程序
var objvalue=obj.value;
var reg=/[1-9^0]\d{5,10}/
if(!reg.test(objvalue))
{
alert("QQ必须为5-10位数字,且第一个数字不能为0");
return false;
}
}
/*------------------以下是当前页程序-------------------------------------*/
function thisForm()
{
var iptMobile=document.getElementById("mobile");
var iptUserName=document.getElementById("username");
var iptIDcard=document.getElementById("Idcard");
var iptEmail=document.getElementById("Email");
//return(checkform("email",iptEmail,10,30,""));
if(checkform("mobile",iptMobile,11,11,"")==false)
{
return false;
}
if(checkform("idcard",iptIDcard,18,18,"")==false)
{
return false;
}
if(checkform("username",iptUserName,6,16,"")==false)
{
return false;
}
}
</script>
</head>
<body>
<form method="post" action="active.html" onsubmit="return thisForm()">
<ul>
<li>手机号:<input type="text" name="mobile" id="mobile" value="13151992269" /></li>
<li>用户名:<input type="text" name="username" id="username" /></li>
<li>身份证:<input type="text" name="Idcard" id="Idcard" value="412326198503066015" /></li>
<li>Email:<input type="text" name="Email" id="Email" /></li>
<li><input type="submit" value="提交" /></li>
</ul>
</form>
</body>
</html>