魏言专用js表单验证库

/*
魏言专用js表单验证库使用说明:

更新日期:2009-12-05

不合法返回true 合法返回false

id 为 验证的元素id名称 字符串 na 字符串 元素功能名 如: 用户名  size 长度数字型
*/

//验证不允许指定值 如不允许空
function isnull(id,na,value)
{
    var el=document.getElementById(id);//获得元素
    if(el.value==value)
    {
        if(value=="")
        {
            alert(na+"不允许为空!");
        }else{
            alert("请选择"+na+"!");
        }       
       
        el.focus();
        return true;
    }else{
        return false;
    }   
}

//验证只能包含纯正整数 不包含小数
function isInteger(id,na)
{
    var el=document.getElementById(id);//获得元素
    var regx=/^[0-9]+$/;
    if(isnull(id,na,""))
    {
        return true;
    }else if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"只能为数字!");
       return true;
    }else{
     return false;
    }
   
}

//验证只能为数字,包含小数
function isDigital(id,na)
{
     var el=document.getElementById(id);//获得元素
     if(isNaN(el.value) || el.value=="")
     {
        //不合法       
        el.focus();
        alert(na+"只能填写数字类型!");
        return true;
     }else{
        return false;
     }
}

//验证日期格式
function isDate(id,na)
{
   var el=document.getElementById(id);//获得元素
   if(CheckDate(el.value))//判断如果不是日期格式
   {
        el.focus();
        alert(na+"必须为日期格式!");       
        return true;
   }else{
        return false;
   }
}
//验证Email
function isEmail(id,na)
{
    var el=document.getElementById(id);//获得元素
    var regx=/^([a-zA-Z0-9_-])+@((/w[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$/i;
    if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"格式不合法!");
       return true;
    }else{
     return false;
    }
}

 

//验证只能输入中文
function isChinese(id,na)
{
    var el=document.getElementById(id);//获得元素
    var regx=/[^/u4E00-/u9FA5]/g; 
    if(isnull(id,na,""))
    {
        return true;
    }else if(regx.test(el.value))
    {
        el.focus();
        alert(na+"只能输入中文汉字!");
       return true;
    }else{
     return false;
    }
   
}

//验证不允许输入汉字只能包含字母、数字、下划线
function isEnglish(id,na)
{
    var el=document.getElementById(id);//获得元素
    var regx=/^[A-Za-z0-9_]+$/;
    if(isnull(id,na,""))
    {
        return true;
    }else if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"只能包含字母、数字、下划线!");
       return true;
    }else{
     return false;
    }
   
}


//不允许超过(大于)指定长度:id 验证的id ,size 限制的长度 ,验证控件名 如名称 提示名称只允许输入多少个字符
function Thanlength(id,size,na)
{
    var el=document.getElementById(id);//获得元素
    if(isnull(id,na,""))
    {
      return true;
    }else if(el.value.length>size)
    {
        alert(na+"至多输入"+size+"个字符!");
        el.focus();
        return true;
    }else{
        return false;
    }
}
//不允许少于(小于)指定长度:id 验证的id ,size 限制的长度 ,验证控件名 如名称 提示名称只允许输入多少个字符
function Lesslength(id,size,na)
{
    var el=document.getElementById(id);//获得元素
    if(isnull(id,na,""))
    {
      return true;
    }else if(el.value.length<size)
    {
        alert(na+"至少输入"+size+"个字符!");
        el.focus();
        return true;
    }else{
        return false;
    }
}

//验证两次输入是否一样 不合法返回true
function issame(id,id2,na)
{
    var el1=document.getElementById(id).value;
    var el2=document.getElementById(id2).value;
    if(isnull(id,na,""))
    {
        return true;
    }else if(el1==el2)
    {
        //合法
        return false;
    }else{
        //非法
        alert("两次输入"+na+"不一致,请重新输入!");
        return true;
    }
}
//验证URL格式
function IsURL(id,na){
   var el=document.getElementById(id);//获得元素
    var regx=/[a-zA-z]+:[^s]*/;
    if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"格式不合法!");
       return true;
    }else{
     return false;
    }     
 }
 
 //验证邮政编码
function isPostcode(id,na){
   var el=document.getElementById(id);//获得元素
    var regx=//d{6}/;
    if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"格式不合法!");
       return true;
    }else{
     return false;
    }     
 }
 
 
 //验证手机号
function isPhone(id,na){
   var el=document.getElementById(id);//获得元素
    var regx=/^[1]([3][0-9]{1}|59|58)[0-9]{8}$/;
    if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"格式不合法!");
       return true;
    }else{
     return false;
    }     
 }
 
 //验证座机电话 0470-8255311 010-8255311 格式
function isTel(id,na){
   var el=document.getElementById(id);//获得元素
    var regx=/^(([0/+]/d{2,3}-)?(0/d{2,3})-)(/d{7,8})(-(/d{3,}))?$/;
    if(!regx.test(el.value))
    {
        el.focus();
        alert(na+"格式不合法!");
       return true;
    }else{
     return false;
    }     
 }
 
 //验证身份证合法性
function IscidInfo(id){
   var el=document.getElementById(id);//获得元素
   var sId=el.value;
   var aCity={
   11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
   21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",
   33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",
   41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",
   46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",
   54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",
   65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"
   }
   var iSum=0
   var info=""
   if(!/^/d{17}(/d|x)$/i.test(sId))
   {
     el.focus();
     alert("身份证长度不合法!");
     return true;
   }
   sId=sId.replace(/x$/i,"a");
   if(aCity[parseInt(sId.substr(0,2))]==null)
   {
     el.focus();
     alert("身份证地区不合法!");
     return true;
   }
   sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
   var d=new Date(sBirthday.replace(/-/g,"/"));
   var age=new Date().getFullYear()-d.getFullYear();
   if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
   {
        el.focus();
        alert("身份证生日不合法!");
        return true;
   }
   for(var i = 17;i>=0;i --)
    iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
   if(iSum%11!=1)
   {
     el.focus();
     alert("身份证编号不合法!");
     return true;
   }
   //alert(aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")+","+age);
   return false;
}

 
 //提取身份证地区,生日,性别,年龄
function GetIdInfo(id){
   var el=document.getElementById(id);//获得元素
   var sId=el.value;
   var aCity={
   11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
   21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",
   33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",
   41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",
   46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",
   54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",
   65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"
   }
   var iSum=0
   var info=""
   if(!/^/d{17}(/d|x)$/i.test(sId))
   {
     el.focus();
     alert("身份证长度不合法!");
     return "";
   }
   sId=sId.replace(/x$/i,"a");
   if(aCity[parseInt(sId.substr(0,2))]==null)
   {
     el.focus();
     alert("身份证地区不合法!");
     return "";
   }
   sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
   var d=new Date(sBirthday.replace(/-/g,"/"));
   var age=new Date().getFullYear()-d.getFullYear();
   if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
   {
        el.focus();
        alert("身份证生日不合法!");
        return "";
   }
   for(var i = 17;i>=0;i --)
    iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
   if(iSum%11!=1)
   {
     el.focus();
     alert("身份证编号不合法!");
     return "";
   }
 
   return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")+","+age;
}
 

//判断输入的日期是否正确 内部 private
function CheckDate(INDate)
{
 if(INDate==""){return true;}
 subYY=INDate.substr(0,4)
 if(isNaN(subYY) || subYY<=0){
  return true;
 }
 //转换月份
 if(INDate.indexOf('-',0)!=-1){ separate="-"}
 else{
  if(INDate.indexOf('/',0)!=-1){separate="/"}
  else {return true;}
  }
  area=INDate.indexOf(separate,0)
  subMM=INDate.substr(area+1,INDate.indexOf(separate,area+1)-(area+1))
  if(isNaN(subMM) || subMM<=0){return true;}
  if(subMM.length<2){subMM="0"+subMM}
 //转换日
 area=INDate.lastIndexOf(separate)
 subDD=INDate.substr(area+1,INDate.length-area-1)
 if(isNaN(subDD) || subDD<=0){
  return true;
 }
 if(eval(subDD)<10){subDD="0"+eval(subDD)}
 NewDate=subYY+"-"+subMM+"-"+subDD
 if(NewDate.length!=10){return true;}
    if(NewDate.substr(4,1)!="-"){return true;}
    if(NewDate.substr(7,1)!="-"){return true;}
 var MM=NewDate.substr(5,2);
 var DD=NewDate.substr(8,2);
 if((subYY%4==0 && subYY%100!=0)||subYY%400==0){ //判断是否为闰年
  if(parseInt(MM)==2){
   if(DD>29){return true;}
  }
 }else{
  if(parseInt(MM)==2){
   if(DD>28){return true;}
  }
 }
 var mm=new Array(1,3,5,7,8,10,12); //判断每月中的最大天数
 var flag = false;
 for(i=0;i<mm.length;i++){
    if(parseInt(MM,10) == mm[i]){flag = true;}
 }
 if (flag == true){
    if(parseInt(DD)>31){return true;}
 }else{
    if(parseInt(DD)>30){return true;}
 }

 if(parseInt(MM)>12){return true;}
   return false;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值