Maison  >  Article  >  développement back-end  >  Comment vérifier le format du numéro de téléphone à l'aide de l'expression régulière PHP

Comment vérifier le format du numéro de téléphone à l'aide de l'expression régulière PHP

WBOY
WBOYoriginal
2023-06-24 08:13:391428parcourir

Lors du développement d'un site Web ou d'une application utilisant PHP, il est souvent nécessaire d'effectuer une vérification de format sur les données saisies par l'utilisateur. Les numéros de téléphone sont l'un des objets de vérification courants, car le format des numéros de téléphone peut varier en fonction de l'emplacement géographique, de l'opérateur et des normes internationales. Dans ce cas, l'utilisation d'expressions régulières PHP peut valider efficacement le format du numéro de téléphone. Cet article explique comment utiliser les expressions régulières PHP pour vérifier le format du numéro de téléphone.

1. Exigences relatives au format du numéro de téléphone
Un numéro de téléphone est une chaîne composée de chiffres, d'espaces, de crochets et de signes plus. Les exigences spécifiques sont les suivantes :

  1. peut avoir des espaces ou pas d'espace.
  2. Cela peut être avec ou sans parenthèses, mais s'il y a des parenthèses, les parenthèses gauche et droite doivent apparaître en même temps.
  3. Peut avoir un signe plus ou non, mais s'il y a un signe plus, il doit indiquer un appel international au début.
  4. Le nombre de numéros doit être compris entre 7 et 15 chiffres.

2. Utilisez des expressions régulières PHP pour vérifier le format du numéro de téléphone

  1. Règles de base
    Utilisez des expressions régulières PHP pour vérifier le format du numéro de téléphone, vous pouvez utiliser la fonction preg_match. Les trois paramètres de cette fonction sont la règle d'expression régulière, la chaîne à mettre en correspondance et le tableau de résultats de correspondance facultatif (si vous souhaitez obtenir les résultats spécifiques de la correspondance). Ce qui suit est une expression régulière pour la vérification de base du format du numéro de téléphone :
$regex = "/^(+?d{1,3}[ .-()]?)?d{7,15}$/";

L'analyse spécifique est la suivante :

  • /^ Par quoi commencer, /i n'est pas sensible à la casse.
  • (+?d{1,3}[ .-()]?) peut correspondre au signe plus avant l'indicatif régional et aux caractères spéciaux dans l'indicatif régional.
  • d{7,15}$ La partie numérique du numéro de téléphone doit comporter de 7 à 15 caractères.
  1. Code complet
    Voici le code complet pour valider le format du numéro de téléphone à l'aide d'expressions régulières PHP :
function validatePhoneNumber($phoneNumber) {
    $regex = "/^(+?d{1,3}[ .-()]?)?d{7,15}$/";
    return preg_match($regex, $phoneNumber);
}

if (validatePhoneNumber("1234567")) {
    echo "验证成功!";
} else {
    echo "验证失败。";
}

Le code ci-dessus définit une fonction appelée validatePhoneNumber, qui est utilisée pour valider le format du numéro de téléphone. Nous utilisons ensuite une instruction if pour appeler la fonction avec le numéro de téléphone donné (1234567) et générons le message approprié en fonction des résultats de la vérification.

3. Erreurs courantes et solutions

  1. Caractères d'échappement excessifs
    Si vous utilisez des caractères d'échappement excessifs dans les expressions régulières, la correspondance peut échouer. Par exemple, dans le code ci-dessus, nous avons utilisé le caractère d'échappement "+" qui n'est pas nécessaire. La façon correcte de l’écrire est « + ? ». De plus, si la chaîne d'entrée contient des caractères réservés tels que « * » et « + », ils doivent être échappés, sinon l'expression régulière peut se comporter de manière inattendue.
  2. Cas particuliers pour les indicatifs régionaux
    Les numéros de téléphone de certains pays ou régions peuvent contenir des formats d'indicatif régional spéciaux. Pour cette situation, nous pouvons ajouter plus de règles à l'expression régulière à des fins de vérification. Par exemple, en Chine, l'indicatif régional est un nombre à 3 ou 4 chiffres qui peut ou non être mis entre parenthèses. Dans ce cas, l'expression régulière suivante peut être utilisée :
$regex = "/^(+?d{1,3}[ .-()]?)?((d{3,4})|(d{3,4}))[ .-()]?d{7,8}$/";

L'expression régulière ci-dessus permet de saisir un indicatif régional à 3-4 chiffres avec ou sans parenthèses.

  1. Correspondance gourmande
    Lors de l'utilisation d'expressions régulières, si une correspondance gourmande est utilisée, cela peut entraîner un échec de correspondance ou des résultats de correspondance inattendus. Par exemple, si nous utilisons l'expression régulière suivante pour la validation :
$regex = "/^(+?d{1,3}[ .-()]?)?.{7,15}$/";

Cette expression régulière permet de saisir des caractères arbitraires, pas seulement des chiffres. Par conséquent, les chaînes contenant des lettres ou des symboles peuvent réussir la validation. Pour éviter cela, utilisez une correspondance non gourmande si nécessaire, par exemple en utilisant "{7,15} ?" au lieu de "{7,15}".

IV. Résumé
Lorsque vous utilisez des expressions régulières PHP pour vérifier le format du numéro de téléphone, vous devez faire attention aux points suivants :

  1. Le format du numéro de téléphone peut varier en raison des différences de situation géographique, d'opérateurs et de normes internationales. , il doit donc être personnalisé pour différents Écrivez l'expression régulière correspondante à la situation.
  2. Lorsque vous écrivez des expressions régulières, vous devez faire attention aux problèmes d'échappement des caractères réservés et de correspondance gourmande.
  3. Encapsuler l'expression régulière pour vérifier les numéros de téléphone dans une fonction peut rendre le code plus clair, plus concis et plus facile à maintenir.

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