Maison  >  Article  >  interface Web  >  L'expression régulière JS implémente parfaitement la fonction de vérification de la carte d'identité

L'expression régulière JS implémente parfaitement la fonction de vérification de la carte d'identité

小云云
小云云original
2018-01-09 13:57:142872parcourir

Cet article présente principalement les expressions régulières JS pour implémenter parfaitement la fonction de vérification des cartes d'identité. Les amis dans le besoin peuvent s'y référer. J'espère que cela pourra aider tout le monde.

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. xX n'est pas sensible à la casse,

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 de saut). mois),

4. Voir les règles de vérification pour plus de détails. L'écriture est plus détaillée et claire. Je pense que vous pouvez en écrire une vous-même après l'avoir lu. .com/article/7f41ececff944a593d095c8c.html

5. À l'heure actuelle, il n'est pas possible de vérifier avec précision le code de localisation. 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

entrez directement le code :


Recommandations associées :

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 {&#39;status&#39;:0,&#39;msg&#39;:&#39;身份证号码不合规&#39;};
    }
    //区位码校验
    //出生年月日校验  前正则限制起始年份为1900;
    var year = id.substr(6,4),//身份证年
      month = id.substr(10,2),//身份证月
      date = id.substr(12,2),//身份证日
      time = Date.parse(month+&#39;-&#39;+date+&#39;-&#39;+year),//身份证日期时间戳date
      now_time = Date.parse(new Date()),//当前时间戳
      dates = (new Date(year,month,0)).getDate();//身份证当月天数
    if(time>now_time||date>dates){
      return {&#39;status&#39;:0,&#39;msg&#39;:&#39;出生日期不合规&#39;}
    }
    //校验码判断
    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(&#39;1&#39;,&#39;0&#39;,&#39;X&#39;,&#39;9&#39;,&#39;8&#39;,&#39;7&#39;,&#39;6&#39;,&#39;5&#39;,&#39;4&#39;,&#39;3&#39;,&#39;2&#39;); //校验码对照表
    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;}
}

Couramment utilisé 15 expressions régulières JS

Expressions régulières JS à maîtriser

Compréhension approfondie des expressions régulières JS --- regroupement

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!

Déclaration:
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