Maison >interface Web >js tutoriel >Implémentation parfaite de la méthode régulière de vérification de la carte d'identité js
Remarque :
1. Seuls les numéros d'identification à 18 chiffres sont vérifiés. Il devrait y avoir très peu de numéros d'identification à 15 chiffres maintenant
2. 🎜>
3. L'année de naissance est 1900-2099, et le nombre de jours dans chaque mois est également vérifié (en tenant compte de la situation des mois bissextiles 4. pour plus de détails. Ceci est écrit plus en détail et plus clairement. Je le crois. Après l'avoir lu, vous pouvez en écrire un par vous-même, 5. À l'heure actuelle, il n'est pas possible de vérifier avec précision le code de localisation que j'ai. collecté et trié le code de localisation et fourni une API de requête à titre de référence uniquement. En cas d'inexactitude, veuillez laisser un message pour le signalerAdresse API : http://www.xuzee.com/api/idcard.php Description de l'interface : http:// /www.xuzee.com/api/6. Cette fonction de vérification est actuellement en cours d'exécution dans le projet. Aucun problème n'a encore été trouvé. S'il y a des problèmes, ce sera le cas. mis à jour. Ci-dessus saisissez directement le code :function testid(id) { // 1 "验证通过!", 0 //校验不通过 // id为身份证号码 var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/; //号码规则校验 if(!format.test(id)){ return {'status':0,'msg':'身份证号码不合规'}; } //区位码校验 //出生年月日校验 前正则限制起始年份为1900; var year = id.substr(6,4),//身份证年 month = id.substr(10,2),//身份证月 date = id.substr(12,2),//身份证日 time = Date.parse(month+'-'+date+'-'+year),//身份证日期时间戳date now_time = Date.parse(new Date()),//当前时间戳 dates = (new Date(year,month,0)).getDate();//身份证当月天数 if(time>now_time||date>dates){ return {'status':0,'msg':'出生日期不合规'} } //校验码判断 var c = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); //系数 var b = new Array('1','0','X','9','8','7','6','5','4','3','2'); //校验码对照表 var id_array = id.split(""); var sum = 0; for(var k=0;k<17;k++){ sum+=parseInt(id_array[k])*parseInt(c[k]); } if(id_array[17].toUpperCase() != b[sum%11].toUpperCase()){ return {'status':0,'msg':'身份证校验码不合规'} } return {'status':1,'msg':'校验通过'} }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!