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>

posted @ 2008-10-23 10:50  ∮随风而行∮  阅读(351)  评论(0编辑  收藏  举报