Lorsque nous construisons un site Web Internet, nous utilisons souvent notre numéro d'identification lors de l'enregistrement des informations personnelles. Nous devons vérifier notre carte d'identité, sinon d'autres passeront en entrant simplement un numéro, ce qui vous fait sentir que ce site Web est très fait de la merde.
Il existe des règles pour le numéro d'identification.
Structure et forme
1. La structure du nombre
Le numéro de citoyenneté est un code de combinaison de fonctionnalités, composé d'un code d'ontologie à dix-sept chiffres et d'un code de vérification à un chiffre. L'ordre d'arrangement est de gauche à droite: code d'adresse à six chiffres, date de code de naissance à huit chiffres, code de séquence à trois chiffres et code de vérification à un chiffre.
2. Code d'adresse
Le code de division administratif du comté (ville, bannière, district) où est situé la résidence permanente de l'objet codant doit être mis en œuvre conformément aux dispositions de GB / T2260.
3. Date de code de naissance
Il indique l'année, le mois et le jour de la naissance de l'objet codé. Il doit être exécuté conformément aux dispositions de GB / T7408. Il n'y a pas de séparateur entre les codes de l'année, du mois et du jour.
4. Code de séquence
Il indique que dans la zone identifiée par le même code d'adresse, le numéro de séquence attribué aux personnes nées la même année, le même mois et le même jour. Le nombre impair du code de séquence est attribué aux hommes et même des chiffres sont affectés aux femmes.
5. Code de vérification
Selon les codes numériques des dix-sept premiers chiffres, le code de vérification calculé selon le code de vérification ISO 7064: 1983.Mod 11-2.
Méthode de calcul
1. Multipliez le nombre à 17 chiffres du numéro d'identification précédent par différents coefficients. Les coefficients de la première position à la dix-septième position sont: 7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2.
2. Ajouter le résultat de la multiplication de ces nombres et coefficients à 17 chiffres.
3. Utilisez l'addition et divisez par 11 pour voir quel est le reste?
4. Le reste ne peut avoir que 11 numéros: 0-1-2-3-4-5-6-7-8-9-10. Le numéro de la dernière carte d'identité qui y correspondait est le 1-0-X-9-8-7-6-5-4-3-2.
5. À partir de ce qui précède, vous savez que si le reste est 3, le 18ème chiffre de la carte d'identité apparaît 9. Si le nombre correspondant est 2, le dernier numéro de la carte d'identité est le chiffre romain x.
Par exemple: le numéro d'identification d'un homme est [53010219200508011x], voyons si cette carte d'identité est une carte d'identité légale.
First we get the sum of the product of the first 17 bits [(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)] is 189, puis diviser 189 par 11 est 189/11 = 17 ---- 2, c'est-à-dire que le reste des nombres est 2. Enfin, à travers les règles correspondantes, vous pouvez savoir que le code de vérification correspondant au reste 2 est X. Par conséquent, il peut être déterminé qu'il s'agit du bon numéro d'identification.
Ce qui précède est extrait de Baidu Encyclopedia.
Il s'agit d'une image d'information connexe trouvée en ligne.
Sur la base d'informations connues, nous pouvons écrire l'implémentation interne de cette méthode dans JS. La première vérification 17 bits est plus facile à mettre en œuvre, donc je ne dirai pas grand-chose et je me concentrerai sur le code de vérification du dernier chiffre.
La copie de code est la suivante:
// Vérification du numéro d'identification
fonction isidcard (cardid) {
// Expression régulière de la carte d'identité (18 bits)
var isidcard2 = / ^ [1-9] / d {5} (19 / d {2} | [2-9] / d {3}) ((0 / d) | (1 [0-2])) (([0 | 1 | 2] / d) | 3 [0-1]) (/ d {4} | / d {3} x) $ / i;
var stard = "10x98765432"; // le numéro de la dernière carte d'identité
var premier = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // coefficient 1-17
var sum = 0;
if (! isidcard2.test (cardid)) {
retourne false;
}
var année = cardid.substr (6, 4);
var mois = cardid.substr (10, 2);
var day = cardid.substr (12, 2);
var anniversaire = cardid.substr (6, 8);
if (anniversaire! = datetoString (nouvelle date (année + '/' + mois + '/' + jour))) {// Vérifiez si la date est légale
retourne false;
}
pour (var i = 0; i <cardid.length - 1; i ++) {
sum + = cardid [i] * d'abord [i];
}
Résultat var = somme% 11;
var last = sraph [résultat]; // Le dernier numéro d'identification calculé
if (cardid [cardid.length - 1] .toupperase () == dernier) {
Retour Vrai;
} autre {
retourne false;
}
}
// Date de retour de la chaîne Date de retour 2008080808
fonction datetoString (date) {
if (date d'instance de date de date) {
var année = date.getlyar ();
var mois = date.getMonth () + 1;
mois = mois <10? «0» + mois: mois;
var day = date.getDate ();
jour = jour <10? '0' + jour: jour;
RETOUR ANNÉE + MOIS + JOUR;
}
retour '';
}
Seules les cartes d'identité à 18 chiffres sont vérifiées ici et les cartes d'identité de première génération à 15 chiffres ne peuvent pas être utilisées.
Ici, nous vérifions également la légalité des dates, telles que des dates illégales telles que 0230, 0431, et la vérification ne sera pas adoptée.
Nous pouvons également ajouter cette méthode à JQuery valider pour une vérification facile.
Écrire une méthode de vérification de validation jQuery personnalisée
La copie de code est la suivante:
// Vérification du numéro d'identification
jquery.validator.addmethod ("isidcard",
fonction (valeur, élément) {
Renvoie this.optional (élément) || (isidcard (valeur));
},
"Le numéro de carte d'identité est illégal!");
Ayons une simple démo pour voir comment cela fonctionne.
La copie de code est la suivante:
<! Doctype html>
<html>
<adal>
<meta http-equiv = "contenu-type" contenu = "text / html; charset = utf-8" />
<Title>
Vérification du numéro d'identification
</TITAL>
<script src = "http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js">
</cript>
<script src = "http://www.w3cschool.cc/try/demo_source/static/js/jquery.validate.js">
</cript>
<script type = "text / javascript">
$ (function () {
$ ("# form1"). valider ({{
règles: {
txtidcard: "Isidcard"
}
});
});
// Vérification du numéro d'identification
fonction isidcard (cardid) {
// Expression régulière de la carte d'identité (18 bits)
var isidcard2 = / ^ [1-9] / d {5} (19 / d {2} | [2-9] / d {3}) ((0 / d) | (1 [0-2])) (([0 | 1 | 2] / d) | 3 [0-1]) (/ d {4} | / d {3} x) $ / i;
var stard = "10x98765432"; // le numéro de la dernière carte d'identité
var premier = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // coefficient 1-17
var sum = 0;
if (! isidcard2.test (cardid)) {
retourne false;
}
var année = cardid.substr (6, 4);
var mois = cardid.substr (10, 2);
var day = cardid.substr (12, 2);
var anniversaire = cardid.substr (6, 8);
if (anniversaire! = datetoString (nouvelle date (année + '/' + mois + '/' + jour))) {// Vérifiez si la date est légale
retourne false;
}
pour (var i = 0; i <cardid.length - 1; i ++) {
sum + = cardid [i] * d'abord [i];
}
Résultat var = somme% 11;
var last = sraph [résultat]; // Le dernier numéro d'identification calculé
if (cardid [cardid.length - 1] .toupperase () == dernier) {
Retour Vrai;
} autre {
retourne false;
}
}
// Date de retour de la chaîne Date de retour 2008080808
fonction datetoString (date) {
if (date d'instance de date de date) {
var année = date.getlyar ();
var mois = date.getMonth () + 1;
mois = mois <10? «0» + mois: mois;
var day = date.getDate ();
jour = jour <10? '0' + jour: jour;
RETOUR ANNÉE + MOIS + JOUR;
}
retour '';
}
// jQuery valider la vérification du numéro d'identification
jquery.validator.addmethod ("isidcard",
fonction (valeur, élément) {
Renvoie this.optional (élément) || (isidcard (valeur));
},
"Le numéro de carte d'identité est illégal!");
</cript>
</ head>
<body>
<form id = "form1" méthode = "get" action = "">
<input type = "text" id = "txtidcard" name = "txtidcard" />
<p>
<input type = "soumi" value = "soumi" />
</p>
</ form>
</docy>
</html>
Vérifiez avec le numéro d'identification 53010219200508011X fourni sur Baidu Encyclopedia
La vérification peut être transmise, essayez de changer x en 0
Si la vérification échoue, la méthode de vérification que nous avons écrite est réussie! Si vous ne le croyez pas, essayez d'utiliser votre numéro d'identification. Il s'avère que j'ai utilisé JS pour vérifier le numéro d'identification si facile.
Ce qui précède est tout sur cet article, j'espère que vous l'aimez.