[JavaScript] 页面验证是否是真实有效的身份证号码 →→→→→进入此内容的聊天室

来自 , 2020-12-05, 写在 JavaScript, 查看 164 次.
URL http://www.code666.cn/view/cdfa4c42
  1. /*!
  2. * Copyright (c) 2011 sxgkwei
  3. * Author:sxgkwei
  4. * Email:sxgkwei@gmail.com
  5. * Date: 2011-11-28 17:10:21
  6. */
  7. var isIdCard=(function(){
  8.         var maxOld = 100;
  9.         var now = (new Date()).getFullYear();
  10.        
  11.         //判断18位身份证
  12.         var is18IdCard = function(idCard){
  13.                
  14.                 var year = parseInt(idCard.substring(6,10),10);
  15.                 if(maxOld+year<now){//证明是鬼魂
  16.                         return false;
  17.                 };
  18.                
  19.                 var idCardReg = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$/;
  20.                 if(!idCardReg.test(idCard)){//基本正则
  21.                         return false;
  22.                 };
  23.                
  24.                 var wi=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];//权列表
  25.                 var ex=[1,0,'x',9,8,7,6,5,4,3,2];//校验码列表
  26.                 var su=0;
  27.                 for(var i=0,wil=wi.length;i<wil;i++){
  28.                         su+=parseInt(idCard.charAt(i),10)*wi[i];
  29.                 };
  30.                 return idCard.charAt(17).toLowerCase()==ex[su%11];
  31.         };
  32.        
  33.         //判断15位身份证
  34.         var is15IdCard = function(idCard){
  35.                
  36.                 var maxId = 2003-16;//2003年前是15位证,但办证也得最少16岁吧
  37.                 var minId = now-maxOld;
  38.                 var year = parseInt("19"+idCard.substring(6,8),10);
  39.                 if(minId>maxId || year<minId || year>maxId){//证明是鬼魂或者非人类
  40.                         return false;
  41.                 };
  42.                
  43.                 var idCardReg = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
  44.                
  45.                 return  idCardReg.test(idCard);
  46.         };
  47.        
  48.         return (function(e){
  49.                 if(e.length==18){
  50.                         return is18IdCard(e);
  51.                 }else if(e.length==15){
  52.                         return is15IdCard(e);
  53.                 }else{
  54.                         alert("莫乱写,我们不是那么好忽悠滴");
  55.                         return false;
  56.                 };
  57.         });
  58. })();
  59.  
  60. isIdCard("410456196511285935");
  61. //javascript/1039

回复 "页面验证是否是真实有效的身份证号码"

这儿你可以回复上面这条便签

captcha