Maison > interface Web > js tutoriel > Implémentation parfaite de la méthode régulière de vérification de la carte d'identité js

Implémentation parfaite de la méthode régulière de vérification de la carte d'identité js

一个新手
Libérer: 2017-10-19 09:47:00
original
2075 Les gens l'ont consulté

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 signaler

Adresse 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 {&#39;status&#39;:0,&#39;msg&#39;:&#39;身份证校验码不合规&#39;}
        }
        return {&#39;status&#39;:1,&#39;msg&#39;:&#39;校验通过&#39;}
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal