Maison > développement back-end > tutoriel php > Expression régulière PHP en action : faire correspondre les noms d'utilisateur

Expression régulière PHP en action : faire correspondre les noms d'utilisateur

王林
Libérer: 2023-06-23 09:14:01
original
1432 Les gens l'ont consulté

Dans le développement Web, il est souvent nécessaire d'effectuer des restrictions de format ou des vérifications de format sur les données. Les expressions régulières PHP sont l'un des outils puissants pour de telles opérations. Dans cet article, nous expliquerons les combats réels et vous apprendrons comment utiliser les expressions régulières PHP pour faire correspondre les noms d'utilisateurs.

1. Exigences en matière de nom d'utilisateur

Tout d'abord, nous devons clarifier les exigences en matière de nom d'utilisateur afin de savoir quel type d'expression régulière doit être utilisé pour la correspondance. Normalement, les exigences en matière de nom d'utilisateur sont les suivantes :

  • se compose de lettres, de chiffres ou de traits de soulignement ;
  • comporte entre 6 et 20 caractères ; #🎜🎜 # ;
  • ne commence pas par un chiffre ;
  • ne permet pas l'utilisation de caractères spéciaux.
Sur la base de ces exigences, nous pouvons commencer à écrire des expressions régulières.

2. Écrivez des expressions régulières

Analysons d'abord les expressions régulières qui doivent être utilisées pour chaque exigence :

    Se compose de des lettres, des chiffres ou des traits de soulignement.
Cette exigence est facile à remplir, il suffit d'utiliser le jeu de caractères [0-9a-zA-Z_].

    doit comporter entre 6 et 20 caractères.
Cette exigence nécessite l'utilisation de quantificateurs, c'est-à-dire que {6,20} signifie faire correspondre 6 à 20 caractères. Nous devons ajouter le jeu de caractères au jeu de caractères, et enfin obtenir : [0-9a-zA-Z_]{6,20}.

    ne commence pas par un chiffre.
Cette exigence nécessite l'utilisation d'une assertion de largeur nulle, c'est-à-dire que l'ajout de (?=D) avant le jeu de caractères signifie que la correspondance doit commencer par un non-chiffre. Finalement on obtient : (?=D)[0-9a-zA-Z_]{6,20}.

    Les caractères spéciaux ne sont pas autorisés.
Cette exigence doit exclure les caractères spéciaux, nous pouvons utiliser le jeu de caractères exclus

1. Comme de nombreux jeux de caractères doivent être exclus, nous pouvons utiliser la plage de codage Unicode pour représenter les jeux de caractères qui doivent être exclus : [u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s~!@# $%^&*() _+={}[]|;:'",.<>/?·!¥......()—""[],;':",. ,? ]). ~!@#$%^&*()_+={}[]|;:'",.<>/?·!¥……()—《》【】、;‘:“,。、?]。最终得到:(?=D)[0-9a-zA-Z_]{6,20}(?![u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s

3. Utilisez des expressions régulières pour faire la correspondance

Maintenant que nous avons écrit l'expression régulière, nous pouvons utiliser la fonction preg_match de PHP pour faire la correspondance. Voici un exemple de code :

function matchUsername($username) {
    $pattern = '/^(?=D)[0-9a-zA-Z_]{6,20}(?![u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s`~!@#$%^&*()_+={}[]|\;:'",.<>/?·!¥……()—《》【】、;‘:“,。、?])$/';
    if(preg_match($pattern, $username)) {
        return true;
    }
    return false;
}

$username1 = 'abcde';
$username2 = 'abcd@e';
$username3 = '1abcde';
$username4 = '123456789abcdefghi';
$username5 = '张三';
$username6 = 'abcdef张三';

var_dump(matchUsername($username1)); // true
var_dump(matchUsername($username2)); // false
var_dump(matchUsername($username3)); // false
var_dump(matchUsername($username4)); // false
var_dump(matchUsername($username5)); // false
var_dump(matchUsername($username6)); // false
Copier après la connexion

Dans le code, nous définissons une fonction matchUsername pour la correspondance et utilisons des cas de test pour vérifier chacun. Après avoir exécuté le code, vous pouvez voir qu'à l'exception de $username1, le reste des cas de test n'a pas réussi à correspondre.

Jusqu'à présent, nous avons expliqué comment utiliser les expressions régulières PHP pour faire correspondre les noms d'utilisateurs lors de combats réels. Nous espérons que cela sera utile aux débutants.


    Jeu de caractères spéciaux

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal