亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

javascript 身份證及電話號碼驗證

系統 2677 0
  1. //這個可以驗證15位和18位的身份證,并且包含生日和校驗位的驗證。??? ??
  2. //如果有興趣,還可以加上身份證所在地的驗證,就是前6位有些數字合法有些數字不合法。 ??
  3. ??
  4. function isIdCardNo(num) ??
  5. {??? ??
  6. ?????????? num = num.toUpperCase();?? ??
  7. ????????? //身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最后一位是校驗位,可能為數字或字符X。??? ??
  8. ?????????? if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))??? ??
  9. ?????????? { ??
  10. ??????????????? alert( '輸入的身份證號長度不對,或者號碼不符合規定!\n15位號碼應全為數字,18位號碼末位可以為數字或X。' ); ??
  11. ?????????????? return false ; ??
  12. ????????? } ??
  13. //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 ??
  14. //下面分別分析出生日期和校驗位 ??
  15. var len, re; ??
  16. len = num.length; ??
  17. if (len == 15) ??
  18. { ??
  19. re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); ??
  20. var arrSplit = num.match(re); ??
  21. ??
  22. //檢查生日日期是否正確 ??
  23. var dtmBirth = new Date( '19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); ??
  24. var bGoodDay; ??
  25. bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); ??
  26. if (!bGoodDay) ??
  27. { ??
  28. ?????????? alert( '輸入的身份證號里出生日期不對!' );??? ??
  29. ??????????? return false ; ??
  30. } ??
  31. else ??
  32. { ??
  33. //將15位身份證轉成18位 ??
  34. //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 ??
  35. ?????????? var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); ??
  36. ??????????? var arrCh = new Array( '1' , '0' , 'X' , '9' , '8' , '7' , '6' , '5' , '4' , '3' , '2' ); ??
  37. ??????????? var nTemp = 0, i;??? ??
  38. ???????????? num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); ??
  39. ??????????? for (i = 0; i < 17; i ++) ??
  40. ?????????? { ??
  41. ???????????????? nTemp += num.substr(i, 1) * arrInt[i]; ??
  42. ??????????? } ??
  43. ??????????? num += arrCh[nTemp % 11];??? ??
  44. ???????????? return num;??? ??
  45. }??? ??
  46. } ??
  47. if (len == 18) ??
  48. { ??
  49. re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); ??
  50. var arrSplit = num.match(re); ??
  51. ??
  52. //檢查生日日期是否正確 ??
  53. var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); ??
  54. var bGoodDay; ??
  55. bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); ??
  56. if (!bGoodDay) ??
  57. { ??
  58. alert(dtmBirth.getYear()); ??
  59. alert(arrSplit[2]); ??
  60. alert( '輸入的身份證號里出生日期不對!' ); ??
  61. return false ; ??
  62. } ??
  63. else ??
  64. { ??
  65. //檢驗18位身份證的校驗碼是否正確。 ??
  66. //校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 ??
  67. var valnum; ??
  68. var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); ??
  69. var arrCh = new Array( '1' , '0' , 'X' , '9' , '8' , '7' , '6' , '5' , '4' , '3' , '2' ); ??
  70. var nTemp = 0, i; ??
  71. for (i = 0; i < 17; i ++) ??
  72. { ??
  73. nTemp += num.substr(i, 1) * arrInt[i]; ??
  74. } ??
  75. valnum = arrCh[nTemp % 11]; ??
  76. if (valnum != num.substr(17, 1)) ??
  77. { ??
  78. alert( '18位身份證的校驗碼不正確!應該為:' + valnum); ??
  79. return false ; ??
  80. } ??
  81. return num; ??
  82. } ??
  83. } ??
  84. return false ; ??
  85. }?????
    //這個可以驗證15位和18位的身份證,并且包含生日和校驗位的驗證。   
//如果有興趣,還可以加上身份證所在地的驗證,就是前6位有些數字合法有些數字不合法。 
 
function isIdCardNo(num) 
{   
          num = num.toUpperCase();  
         //身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最后一位是校驗位,可能為數字或字符X。   
          if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))   
          { 
               alert('輸入的身份證號長度不對,或者號碼不符合規定!\n15位號碼應全為數字,18位號碼末位可以為數字或X。'); 
              return false; 
         } 
//校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 
//下面分別分析出生日期和校驗位 
var len, re; 
len = num.length; 
if (len == 15) 
{ 
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); 
var arrSplit = num.match(re); 
 
//檢查生日日期是否正確 
var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); 
var bGoodDay; 
bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
if (!bGoodDay) 
{ 
          alert('輸入的身份證號里出生日期不對!');   
           return false; 
} 
else 
{ 
//將15位身份證轉成18位 
//校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 
          var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
           var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
           var nTemp = 0, i;   
            num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); 
           for(i = 0; i < 17; i ++) 
          { 
                nTemp += num.substr(i, 1) * arrInt[i]; 
           } 
           num += arrCh[nTemp % 11];   
            return num;   
}   
} 
if (len == 18) 
{ 
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); 
var arrSplit = num.match(re); 
 
//檢查生日日期是否正確 
var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); 
var bGoodDay; 
bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); 
if (!bGoodDay) 
{ 
alert(dtmBirth.getYear()); 
alert(arrSplit[2]); 
alert('輸入的身份證號里出生日期不對!'); 
return false; 
} 
else 
{ 
//檢驗18位身份證的校驗碼是否正確。 
//校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。 
var valnum; 
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
var nTemp = 0, i; 
for(i = 0; i < 17; i ++) 
{ 
nTemp += num.substr(i, 1) * arrInt[i]; 
} 
valnum = arrCh[nTemp % 11]; 
if (valnum != num.substr(17, 1)) 
{ 
alert('18位身份證的校驗碼不正確!應該為:' + valnum); 
return false; 
} 
return num; 
} 
} 
return false; 
}
  



2、嚴格的驗證(僅18位):

Js代碼 復制代碼
  1. <script> ??
  2. 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: "國外" } ??
  3. ??
  4. function cidInfo(sId){ ??
  5. var iSum=0 ??
  6. var info= "" ??
  7. if (!/^d{17}(d|x)$/i.test(sId)) return false ; ??
  8. sId=sId.replace(/x$/i, "a" ); ??
  9. if (aCity[parseInt(sId.substr(0,2))]== null ) return "Error:非法地區" ; ??
  10. sBirthday=sId.substr(6,4)+ "-" +Number(sId.substr(10,2))+ "-" +Number(sId.substr(12,2)); ??
  11. var d= new Date(sBirthday.replace(/-/g, "/" )) ??
  12. if (sBirthday!=(d.getFullYear()+ "-" + (d.getMonth()+1) + "-" + d.getDate())) return "Error:非法生日" ; ??
  13. for ( var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11) ??
  14. if (iSum%11!=1) return "Error:非法證號" ; ??
  15. return aCity[parseInt(sId.substr(0,2))]+ "," +sBirthday+ "," +(sId.substr(16,1)%2? "男" : "女" ) ??
  16. }document.write(cidInfo( "380524198002300016" ), "" ); ??
  17. document.write(cidInfo( "340524198002300019" ), "" ) ??
  18. document.write(cidInfo( "340524197711111111" ), "" ) ??
  19. document.write(cidInfo( "34052419800101001x" ), "" ); ??
  20. </script>??
    <script>
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:"國外"}
 
function cidInfo(sId){
var iSum=0
var info=""
if(!/^d{17}(d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,"a");
if(aCity[parseInt(sId.substr(0,2))]==null)return "Error:非法地區";
sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,"/"))
if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))return "Error:非法生日";
for(var i = 17;i>=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return "Error:非法證號";
return aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")
}document.write(cidInfo("380524198002300016"),"");
document.write(cidInfo("340524198002300019"),"")
document.write(cidInfo("340524197711111111"),"")
document.write(cidInfo("34052419800101001x"),"");
</script>
  




JavaScript表單驗證電話號碼,判斷一個輸入量是否為電話號碼,通過正則表達式實現。
//檢查電話號碼

Js代碼 復制代碼
  1. function isTel(str){ ??
  2. ??????? var reg=/^([0-9]|[\-])+$/g ; ??
  3. ??????? if (str.length<7 || str.length>18){ ??
  4. ???????? return false ; ??
  5. ??????? } ??
  6. ??????? else { ??
  7. ????????? return reg.exec(str); ??
  8. ??????? } ??
  9. }??

javascript 身份證及電話號碼驗證


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品国产在爱久久 | 农村三级孕妇视频在线 | 中文字幕亚洲综合久久 | 国产最新一区二区三区天堂 | 精品一区二区三区亚洲 | 久草在线免费看 | 亚洲精品美女一区二区三区乱码 | 鲁丝一区 | 欧美性猛交xx乱大交 | 亚洲大片免费看 | 久久伊人中文字幕有码 | 亚洲精品免费日日日夜夜夜夜 | 国产精品久久久久9999高清 | 亚洲综合在线观看一区www | 麻豆国内精品欧美在线 | 玖玖在线资源站 | 天天操天天爱天天干 | 精品国产91久久久久久久 | 色播性播爱播放影院 | 国产成人精品午夜在线播放 | 国产精品永久在线 | 麻豆精品久久久 | 国产精品福利在线观看入口 | 欧美亚洲高清 | 亚洲综合色dddd26 | 国产日产欧美精品一区二区三区 | 国产99欧美精品久久精品久久 | 欧洲在线免费视频 | 午夜性色吃奶添下面69影院 | 欧美亚洲高清 | 亚洲欧美精品天堂久久综合一区 | 久久九九综合 | 四虎成人影视 | 国产在线一区二区三区欧美 | 天天综合网天天综合色不卡 | 一级无遮挡理论片 | 黄 色 免 费 网站在线观看 | 天天做天天爱夜夜爽毛片毛片 | 91福利一区二区在线观看 | 六月婷婷中文字幕 | 特级黄色毛片视频 |