Maison >développement back-end >tutoriel php >Comment utiliser des expressions régulières pour la validation du type de données en PHP

Comment utiliser des expressions régulières pour la validation du type de données en PHP

WBOY
WBOYoriginal
2023-07-15 19:43:54927parcourir

Comment utiliser des expressions régulières pour la vérification du type de données en PHP

Lors du développement d'applications Web, la validation des données saisies par l'utilisateur est une étape importante. La vérification du type de données peut garantir la légalité et l'intégrité des données et éviter les erreurs inattendues et les vulnérabilités de sécurité. En PHP, l'utilisation d'expressions régulières est un moyen puissant et flexible de valider les types de données. Cet article explique comment utiliser les expressions régulières pour la validation des types de données courants en PHP et fournit des exemples de code correspondants.

  1. Vérification des types numériques

Par exemple, si nous devons vérifier si une donnée d'entrée est un entier positif, nous pouvons utiliser des expressions régulières pour y parvenir. Voici un exemple de code :

function validateInteger($input) {
    // 使用正则表达式来匹配正整数
    $pattern = '/^[1-9]d*$/';
    if (preg_match($pattern, $input)) {
        echo "验证通过";
    } else {
        echo "验证失败";
    }
}

$input = "12345";
validateInteger($input);   // 输出:验证通过

$input = "-12345";
validateInteger($input);   // 输出:验证失败

Dans le code ci-dessus, l'expression régulière /^[1-9]d*$/ est utilisée pour faire correspondre les entiers positifs. Parmi eux, ^ signifie le début de la chaîne, [1-9] signifie que le premier caractère est un nombre compris entre 1 et 9, et d* signifie 0 ou plusieurs chiffres. <code>$ indique la fin de la chaîne. La fonction preg_match() est utilisée pour effectuer une correspondance d'expression régulière. Renvoie 1 pour indiquer une correspondance réussie et 0 pour indiquer un échec. /^[1-9]d*$/来匹配正整数。其中^表示字符串开始,[1-9]表示第一个字符为1到9之间的数字,d*表示0个或多个数字。$表示字符串结束。preg_match()函数用于执行正则表达式的匹配,返回1表示匹配成功,返回0表示匹配失败。

  1. 验证邮箱类型

验证邮箱类型是常见的需求之一。下面是一个验证邮箱的示例代码:

function validateEmail($input) {
    // 使用正则表达式来匹配邮箱
    $pattern = '/^[w-]+(.[w-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$/i';
    if (preg_match($pattern, $input)) {
        echo "验证通过";
    } else {
        echo "验证失败";
    }
}

$input = "abc@example.com";
validateEmail($input);   // 输出:验证通过

$input = "abc@example";
validateEmail($input);   // 输出:验证失败

上述代码中,使用了正则表达式/^[w-]+(.[w-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$/i来匹配邮箱。其中^[w-]+表示以字母、数字、下划线或破折号开头,(.[w-]+)*表示后面可以跟随0个或多个点号和字母、数字、下划线或破折号,@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$表示邮箱的主体部分,[a-z]{2,4}表示邮箱的域名部分为2到4个字母。

  1. 验证手机号码类型

验证手机号码是另一个常见的需求。下面是一个验证手机号码的示例代码:

function validatePhoneNumber($input) {
    // 使用正则表达式来匹配手机号码
    $pattern = '/^1[3-9]d{9}$/';
    if (preg_match($pattern, $input)) {
        echo "验证通过";
    } else {
        echo "验证失败";
    }
}

$input = "13812345678";
validatePhoneNumber($input);   // 输出:验证通过

$input = "12345678901";
validatePhoneNumber($input);   // 输出:验证失败

上述代码中,使用了正则表达式/^1[3-9]d{9}$/来匹配手机号码。其中^1[3-9]表示以1开头,后面可以是3到9之间的任意数字,d{9}表示后面需要跟随9个数字。

  1. 验证日期类型

验证日期类型是很常见的需求,下面是一个验证日期的示例代码:

function validateDate($input) {
    // 使用正则表达式来匹配日期(YYYY-MM-DD)
    $pattern = '/^[12]d{3}-[01]d-[0-3]d$/';
    if (preg_match($pattern, $input)) {
        echo "验证通过";
    } else {
        echo "验证失败";
    }
}

$input = "2021-12-31";
validateDate($input);   // 输出:验证通过

$input = "2021/12/31";
validateDate($input);   // 输出:验证失败

上述代码中,使用了正则表达式/^[12]d{3}-[01]d-[0-3]d$/来匹配日期。其中^[12]d{3}表示以1或2开头,后面跟随3个数字,-[01]d表示中间部分为一个数字(0或1)和一个数字(0到9),-[0-3]d$

    Vérifier le type d'e-mail

    🎜La vérification du type d'e-mail est l'une des exigences courantes. Voici un exemple de code pour vérifier l'adresse e-mail : 🎜rrreee🎜Dans le code ci-dessus, l'expression régulière /^[w-]+(.[w-]+)*@[a-z0-9- ]+ est utilisé (.[a-z0-9-]+)*(.[a-z]{2,4})$/i pour correspondre à la boîte aux lettres. Parmi eux, ^[w-]+ signifie qu'il commence par des lettres, des chiffres, des traits de soulignement ou des tirets, et (.[w-]+)* signifie qu'il peut être suivi par 0 ou plus Points et lettres, chiffres, traits de soulignement ou tirets, @[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4} )$ représente la partie principale de la boîte aux lettres, et <code>[a-z]{2,4} représente la partie nom de domaine de la boîte aux lettres, qui comporte 2 à 4 lettres. 🎜
      🎜Vérifier le type de numéro de mobile🎜🎜🎜La vérification du numéro de mobile est un autre besoin courant. Voici un exemple de code pour vérifier un numéro de téléphone mobile : 🎜rrreee🎜Dans le code ci-dessus, l'expression régulière /^1[3-9]d{9}$/ est utilisée pour correspondre au numéro de téléphone portable. Parmi eux, ^1[3-9] signifie qu'il commence par 1 et peut être suivi de n'importe quel nombre entre 3 et 9. d{9} signifie qu'il doit être suivi de 9 chiffres. 🎜
        🎜Vérifier le type de date🎜🎜🎜La vérification du type de date est une exigence très courante Voici un exemple de code pour vérifier la date : 🎜rrreee🎜Dans le code ci-dessus, l'expression régulière /. est utilisé ^[12]d{3}-[01]d-[0-3]d$/ pour faire correspondre les dates. Parmi eux, ^[12]d{3} signifie qu'il commence par 1 ou 2, suivi de 3 chiffres. -[01]d signifie que la partie centrale est un. chiffre (0 ou 1) et un chiffre (0 à 9), -[0-3]d$ signifie se terminer par un chiffre (0 à 3) et un chiffre (0 à 9). 🎜🎜Les méthodes de vérification ci-dessus pour certains types de données courants. Grâce à la flexibilité des expressions régulières, nous pouvons définir davantage de règles de vérification en fonction de besoins spécifiques. Au cours du processus de développement, des expressions régulières appropriées doivent être sélectionnées en fonction de la situation réelle pour garantir la légalité et la sécurité des données. 🎜

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