Maison >développement back-end >tutoriel php >Pratique des expressions régulières PHP : correspondance du numéro d'identification

Pratique des expressions régulières PHP : correspondance du numéro d'identification

WBOY
WBOYoriginal
2023-06-23 10:24:312020parcourir

Dans le développement quotidien, il existe de nombreux scénarios dans lesquels les numéros d'identification doivent correspondre. Le numéro d'identification est un format fixe, mais chaque province a des règles légèrement différentes, donc une expression régulière spécifique est nécessaire pour correspondre.

PHP est un langage de programmation largement utilisé. Il fournit des fonctions et des classes d'expressions régulières intégrées qui peuvent facilement faire correspondre les numéros de carte d'identité. Cet article explique comment utiliser les expressions régulières PHP pour faire correspondre les numéros de carte d'identité.

  1. Format du numéro de carte d'identité

Le numéro de carte d'identité se compose de 18 chiffres et d'un code de contrôle, le code de contrôle pouvant être un chiffre ou la lettre X. Les 17 premiers chiffres représentent le code d'adresse, le code de date de naissance et le code de séquence, et le dernier chiffre est le code de contrôle utilisé pour vérifier la validité du numéro d'identification.

Le format du numéro d'identification est le suivant :

① Code adresse. Un numéro à 6 chiffres indiquant le code de division administrative du lieu d'enregistrement du ménage.

② Code date de naissance. Un numéro à 8 chiffres indiquant la date, le mois et le jour de naissance du titulaire de la carte d'identité.

③ Code de séquence. Un numéro à 3 chiffres, indiquant qu'il est unique sous le même code d'adresse et le même code de date de naissance.

④ Code de vérification. 1 chiffre ou lettre, utilisé pour vérifier la validité du numéro d'identification.

Étant donné que les codes de division administrative de chaque province sont différents, différentes expressions régulières sont nécessaires pour correspondre au numéro de carte d'identité. Voyons comment écrire des expressions régulières pour faire correspondre les numéros d'identification.

  1. Correspondance du code d'adresse

Le code d'adresse est constitué des 6 premiers chiffres du numéro d'identification et sert à indiquer le code de division administrative du lieu de résidence. Étant donné que les codes de division administrative de chaque province sont différents, différentes expressions régulières doivent être écrites pour correspondre aux codes d'adresse.

Prenons l'exemple de Pékin. Le code d'adresse de Pékin est 110000. L'expression régulière est la suivante :

$pattern = '/^110000/';

Parmi elles, ^ représente le début de la chaîne correspondante et 110000 représente le code d'adresse qui doit correspondre.

Les expressions régulières dans les autres provinces peuvent être modifiées en conséquence selon le code de division administrative.

  1. Correspondance du code de date de naissance

Le code de date de naissance comprend les 7e à 14e chiffres du numéro de carte d'identité et est utilisé pour indiquer l'année, le mois et le jour de naissance du titulaire de la carte d'identité. Le format du code de date de naissance est aaaaMMjj, où aaaa représente l'année de naissance, MM représente le mois de naissance et jj représente le jour de naissance.

L'expression régulière du code de date de naissance est la suivante :

$pattern = '/^[1-9]d{5}(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/';

où [1-9]d{5} représente les 6 premiers chiffres du code d'adresse, (19|20)d{2} représente l'année de naissance de 1900 à 2099, (0[1-9]|1[012]) signifie que le mois de naissance est du 01 au décembre, (0[1-9]|12|3[01]) signifie que le jour de naissance est du 01 à 31, d{3} Représente le code de séquence, [0-9Xx] représente le code de contrôle (peut être un chiffre ou une lettre X).

  1. Expression régulière complète

En combinant l'expression régulière du code d'adresse et du code de date de naissance, vous pouvez obtenir la règle de correspondance complète pour le numéro de carte d'identité :

$pattern = '/^110000(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/';

Cette expression régulière peut correspondre au numéro de carte d'identité de Pékin , les expressions régulières des autres provinces peuvent être modifiées selon les codes de division administrative correspondants.

  1. Utilisez l'expression régulière PHP pour faire correspondre le numéro d'identification

En PHP, vous pouvez utiliser la fonction preg_match pour faire correspondre le numéro d'identification. Voici un exemple :

$id_number = '110101199001010013'; // 待匹配的身份证号码
$pattern = '/^110000(19|20)d{2}(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])d{3}[0-9Xx]$/'; // 匹配规则
if (preg_match($pattern, $id_number)) {
    echo '身份证号码格式正确';
} else {
    echo '身份证号码格式错误';
}

Dans ce code, $id_number est le numéro d'identification qui doit être mis en correspondance et $pattern est la règle de correspondance. Si le numéro d'identification répond aux règles de correspondance, le format de sortie est correct ; sinon, le format de sortie est incorrect.

  1. Résumé

L'utilisation d'expressions régulières PHP peut facilement faire correspondre les numéros de carte d'identité. Il est nécessaire d'écrire les expressions régulières correspondantes en fonction des codes de division administrative des différentes provinces pour faire correspondre le code d'adresse, puis de faire correspondre le numéro de carte d'identité complet en combinant le code d'adresse et le code de date de naissance. Dans les applications pratiques, le code correspondant au numéro d'identification peut être encapsulé dans une fonction pour une réutilisation facile.

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