js身份证号码,电话号码验证

这是jsp页面调用下面的js代码的一段脚本(整理收集的资料)
 <script type="text/javascript">
function verfiy(){
var cercard=document.forms[0].cerCard.value;
if(!checkId(cercard)){
   document.forms[0].cerCard.focus();
   return false;
}else{
   document.forms[0].cerCard.value = convertID(cercard);
}
}
</script>



js脚本文件

/*

 *判别电话号码,手机号是否有效

 *返回 true:false

 */
function checkPhone(phone)    
{    
//验证电话号码手机号码,包含153,159号段    
if (phone==""){    
alert("电话号码不能为空!");     
return false;    
}    
if (phone != ""){     
var p1 = /^(([0/+]/d{2,3}-)?(0/d{2,3})-)?(/d{7,8})(-(/d{3,}))?$/;    
var me = false;    
if (p1.test(phone)) me=true;    
if (!me){       
//alert('对不起,您输入的电话号码有错误。区号和电话号码之间请用-分割');      
return false;    
}    
}   
return true;    
}    
    

function checkMobile(mobile)    
{      
if (mobile != ""){       
var reg0 = /^13/d{5,9}$/;    
var reg1 = /^153/d{4,8}$/;    
var reg2 = /^159/d{4,8}$/;    
var reg3 = /^0/d{10,11}$/;  
var reg4 = /^150/d{4,8}$/; 
var reg5 = /^158/d{4,8}$/; 
var reg6 = /^15/d{5,9}$/;  
var my = false;    
if (reg0.test(mobile))my=true;    
if (reg1.test(mobile))my=true;    
if (reg2.test(mobile))my=true;    
if (reg3.test(mobile))my=true;  
if (reg4.test(mobile))my=true;    
if (reg5.test(mobile))my=true;    
if (reg6.test(mobile))my=true;    
if (!my){  
//alert('对不起,您输入的手机或小灵通号码有错误。');      
return false;    
}    
return true;    
}    
}  


function checkPhoneAndMobile(phone)    
{     
if (checkMobile(phone)||checkPhone(phone)){  
return true;    
return false;   
}    

/*

 *判别身份证号码是否合法,入口参数为身份证号码

 *返回 true:false

 *Junsan Jin 20050902

 */
function checkId(varInput){
       if(varInput==null || varInput.trim()==""){
              alert("身份证号不能为空,请重新输入!");
              return false;
       }

       varInput = varInput.trim();
       if(varInput.length!=18 && varInput.length!=15){
            alert("身份证号位数不对,请重新输入!");
            return false;
       }
       var ret = convertID(varInput);
  //     alert(ret);
       if(ret == false){
              alert("身份证号不正确,请重新输入!");
              return false;
       }
       else if(varInput.length==18 && varInput!=ret){
              alert("身份证号不正确,请重新输入!");
              return false;
       }
       else{
              //返回值可以自动升级18位身份证号
              //return ret;
             // alert("正确");
              return true;
       }
}
/*
 *15身份证号码升18位,入口参数0为15身份证号码,返回值为18位身份证号码
 *如果证号错误则返回false
 *Junsan Jin 20050902
 */
 function convertID(varInput){

      if(varInput==null || varInput.trim()==""){
              return false;
       }
       var strOldID = new String(varInput.trim());
       var strNewID = "";
       if(strOldID.length==15){

              for(i=0; i<15; i++){

                     //15位的身份证号必须全部由数字组成,否则,视为非法

                     if(checkZInt(strOldID.substring(i,1))){
                            return false;
                     }
              }
              //取得身份证中的年月日
              var year = "19" + strOldID.substr(6,2);
           //   alert(year);
              var month = strOldID.substr(8,2);
          //    alert(month);
              var day = strOldID.substr(10,2);
         //     alert(day);
              //校验日期是否正确
              if(checkDate(year,month,day)){             
                     return false;
              }          
              strNewID = strOldID.substring(0,6) + "19" + strOldID.substring(6,15);
       }
       else if(strOldID.length==18){
              for(i=0; i<17; i++){
                     //15位的身份证号必须全部由数字组成,否则,视为非法
                     if(checkZInt(strOldID.substring(i,1))){
                            return false;
                     }
              }
              if(strOldID.substring(17,18).toUpperCase!="X" && checkZInt(strOldID.substring(17,18))){
                     return false;
              }
              //取得身份证中的年月日
              var year = "19" + strOldID.substr(6,4);
              var month = strOldID.substr(10,2);
              var day = strOldID.substr(12,2);
              //校验日期是否正确
              if(checkDate(year,month,day)){
                     return false;
              }
              strNewID = strOldID.substring(0,17);
       }
       else if(strOldID.length==17){
              for(i=0; i<17; i++){
                     //15位的身份证号必须全部由数字组成,否则,视为非法
                     if(checkZInt(strOldID.substring(i,1))){
                            return false;
                     }
              }
              //取得身份证中的年月日
              var year = "19" + strOldID.substr(6,4);
              var month = strOldID.substr(10,2);
              var day = strOldID.substr(12,2);
              //校验日期是否正确
              if(checkDate(year,month,day)){
                     return false;
              }
              strNewID = strOldID;
      }
       return strNewID = strNewID + createCK(strNewID);

}
/*

 *根据17位的身份证号得到最后一位校验码

 *strID:身份证号前17位

 *只返回

 */
 function createCK(strID){
        var s = 0;
        var WI = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
        var AI = "10X98765432";
        for(i=0; i<17; i++){
               j = strID.substr(i,1) * WI[i];
               s = s + j;
        }
        s = s % 11;
        return AI.substr(s,1);
 }

/*

 *主要提供对日期的精确校验,验证日期是否合法

 *非法返回true,合法返回false

 *Junsan Jin 20050902 

 *参数说明:

 *year:年

 *month:月

 *day:日

 */
function checkDate(year,month,day){         
       var flag=false;
       var time=new Date(year,month-1,day);
   //    alert(time);
       var e_year=time.getFullYear();
   //    alert(e_year);
       var e_month=time.getMonth()+1;
   //    alert(e_month);
       var e_day=time.getDate();
   //    alert(e_day);
       if(year!=e_year||month!=e_month||day!=e_day)
       {
              flag=true;
       }
       return flag;
}

/*

 *检查输入的串是否在0到9之间的字符组成

 *不是则返回true,如果是则返回false

 *Junsan Jin 20050902

 */
function checkZInt(str){
      var reg = /^/d+$/;
      if(arr=str.match(reg))
      {
       //全部是数字
           return false;
      }
      else
      {
       //含有其他字符
           return false;
      }
}
/*

 *字符串去掉左右空格的方法

 *Junsan Jin 20050902

 */
String.prototype.trim = function(){
       return this.replace(/(^/s*)|(/s*$)/g, "");
}
/*

 *字符串去掉左空格的方法

 *Junsan Jin 20050902

 */
String.prototype.ltrim = function(){
       return this.replace(/(^/s*)/g, "");
}

/*

 *字符串去掉右空格的方法

 *Junsan Jin 20050902

 */
String.prototype.rtrim = function(){
       return this.replace(/(/s*$)/g, "");

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值