Maison > Article > développement back-end > Comment vérifier le code de contrôle du numéro de carte d'identité à l'aide de l'expression régulière PHP
Le numéro d'identification est un document important que les gens ont souvent besoin d'utiliser dans leur vie quotidienne, et la vérification du dernier code de contrôle dans le numéro d'identification est un élément important pour savoir si le numéro d'identification est légal. Lors de la programmation en PHP, nous pouvons utiliser des expressions régulières pour vérifier le code de contrôle dans le numéro d'identification afin de garantir la validité du numéro d'identification. Ce qui suit présentera la méthode de vérification du code de contrôle du numéro de carte d'identité à l'aide d'expressions régulières PHP.
Tout d'abord, nous devons comprendre le format du numéro d'identification. Le numéro de carte d'identité se compose de 18 chiffres et lettres, dont les 17 premiers chiffres représentent la province, la ville, le comté, la date de naissance et d'autres informations, et le dernier chiffre est un code de contrôle. Les règles de calcul du code de contrôle sont les suivantes :
Avec les connaissances de base ci-dessus, nous pouvons écrire des expressions régulières pour vérifier les numéros d'identification. Voici un exemple de code :
function checkIDCard($id_card){ $pattern = '/^d{6}(19|20)d{2}(0d|1[0-2])([0-2]d|3[0-1])d{3}[0-9X]$/'; if(preg_match($pattern, $id_card)){ $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); $ai = str_split(substr($id_card, 0, 17)); $n = 0; for($i=0; $i<17; $i++){ $n += $wi[$i] * $ai[$i]; } $c = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $check_code = $c[$n % 11]; return $check_code == substr($id_card, -1); } return false; } $id_card = '33010219950917413X'; if(checkIDCard($id_card)){ echo '身份证号码校验成功'; }else{ echo '身份证号码校验失败'; }
Dans l'expression régulière ci-dessus, d signifie correspondre à des nombres, {6} signifie correspondre 6 fois, (19|20)d{2} signifie correspondre à 19 ou 20. les 4 premiers chiffres, (0d|1[0-2]) signifie faire correspondre les mois de 01 à 12, ([0-2]d|3[0-1]) signifie faire correspondre les dates de 01 à 31, d{3 } signifie correspondre à trois autres nombres, [0-9X]$ signifie qu'il se termine par un nombre ou X. Cela correspondra effectivement au numéro d’identification.
Enfin, nous pouvons tester si notre code fonctionne. Nous pouvons modifier le code de vérification du numéro de carte d'identité pour vérifier si la fonction de vérification du code est normale. Par exemple :
$id_card = '330102199509174133';
ou :
$id_card = '330102199509174139';
Les codes de contrôle de ces deux numéros d'identification sont erronés et ne devraient pas réussir la vérification. Et lorsque nous exécutons le code, nous verrons que le résultat de l'échec de la vérification du numéro d'identification est affiché, prouvant que notre code peut fonctionner normalement.
En bref, la méthode d'utilisation de l'expression régulière PHP pour vérifier le code de contrôle du numéro de carte d'identité est relativement simple. Il vous suffit d'écrire une expression régulière appropriée et les fonctions associées pour compléter facilement la carte d'identité. . Travaux de vérification du numéro.
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!