Maison > Article > développement back-end > PHP utilise des expressions régulières pour vérifier les adresses e-mail
Le courrier électronique, comme le courrier ordinaire, nécessite également une adresse. La différence entre celui-ci et le courrier ordinaire est qu'il s'agit d'une adresse électronique. Tous les utilisateurs disposant d’une boîte aux lettres sur Internet possèdent une ou plusieurs adresses e-mail qui leur sont propres, et ces adresses e-mail sont toutes uniques. Le serveur de messagerie envoie chaque e-mail à la boîte aux lettres de chaque utilisateur en fonction de ces adresses. L'adresse e-mail est l'adresse de la boîte aux lettres de l'utilisateur. Tout comme pour le courrier ordinaire, la possibilité de recevoir votre e-mail dépend du fait que vous ayez obtenu la bonne adresse e-mail. Une adresse email Internet complète est composée des deux parties suivantes regroupées sous le format suivant : nom de login@nom d'hôte.nom de domaine séparé par un symbole « @ » représentant « at » (at). est le nom de connexion de l'autre partie et le côté droit est le nom d'hôte complet, qui comprend le nom d'hôte et le nom de domaine. Parmi eux, le nom de domaine se compose de plusieurs parties, chaque partie est appelée un sous-domaine (Subdomain), et chaque sous-domaine est séparé par un point ".". Chaque sous-domaine indiquera à l'utilisateur des informations sur ce serveur de messagerie.
code e-mail correspondant régulier php
1. Vérifiez l'e-mail :
< ?php if (ereg("/^[a-z]([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i; ",$email)){ echo “Your email address is correct!”;} else{ echo "Please try again!"; } ?>
ou
$str = ''; $isMatched = preg_match('/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}$/', $str, $matches); var_dump($isMatched, $matches);
correspond au format de l'e-mailExpression régulière :
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i;
Analyse :
/content/i constitue une expression régulière insensible à la casse
^ commence à correspondre
$ se termine par
[a-z ; ] Le préfixe de l'e-mail doit commencer par une lettre anglaise
([a-z0-9]*[-_]?[a-z0-9]+)* et _a_2, aaa11, _1_a_2 correspond, mais ne correspond pas à a1_, aaff_33a_, aaa. S'il s'agit d'un caractère nul, il correspond également à * signifie 0 ou plus.
* représente 0 ou plusieurs caractères précédents
[a-z0-9]* correspond à 0 ou plusieurs lettres ou chiffres anglais
[-_] correspond à 0 ou 1 "-", car "-" ? ne peut pas apparaître en continu
[a-z0-9]+ correspond à une ou plusieurs lettres ou chiffres anglais, car "-" ne peut pas être utilisé comme fin
@ Il doit y avoir @
([a -z0-9]*[-_]?[a-z0-9]+)+ voir ci-dessus ([a-z0-9]*[-_]?[a-z0-9 ]+)* explication, mais il ne peut pas être vide, + signifie un ou plusieurs.
[.] Traitez les caractères spéciaux (.) comme des caractères ordinaires
[a-z]{2,3} pour faire correspondre 2 à 3 lettres anglaises, généralement com ou net, etc.
([.][a-z]{2}) ? Correspond à 0 ou 1 [.][a-z]{2} (comme .cn, etc.) Je ne sais pas si la dernière partie de .com.cn est généralement deux chiffres Sinon, veuillez modifier {2} en {nombre de mots de début, nombre de mots de fin}
Cette expression régulière pour faire correspondre les adresses e-mail est relativement forte, puissante, largement couvrante et utile pour la collecte par amis Descendez.
Le format du nom de domaine international est le suivant :
Le nom de domaine est composé de toute combinaison du jeu de caractères spécifique de la langue de chaque pays, de lettres anglaises, de chiffres et de " -" (c'est-à-dire un trait d'union ou un signe moins). Cependant, ni le début ni la fin ne peuvent contenir "-" et "-" ne peut pas apparaître en continu. Les lettres des noms de domaine ne sont pas sensibles à la casse. Le nom de domaine peut contenir jusqu'à 60 octets (y compris les suffixes .com, .net, .org, etc.).
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a- z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i;
/content/i forme une formule d'expression régulière insensible à la casse ;
^ Début du match
$ Fin du match
[a-z] Le préfixe de l'e-mail doit commencer par une lettre anglaise
([a-z0-9]*[-_]?[a- z0- 9]+)* correspond à _a_2, aaa11, _1_a_2, mais ne correspond pas à a1_, aaff_33a_, aaa. S'il s'agit d'un caractère nul, il correspondra également à * signifie 0 ou plus.
* représente 0 ou plusieurs caractères précédents
[a-z0-9]* correspond à 0 ou plusieurs lettres ou chiffres anglais
[-_] correspond à 0 ou 1 "-", car "-" ? ne peut pas apparaître en continu
[a-z0-9]+ correspond à une ou plusieurs lettres ou chiffres anglais, car "-" ne peut pas être la fin
@ Il doit y avoir @
([a-z0-9] *[-_]?[a-z0-9]+)+ voir ci-dessus ([a-z0-9]*[-_]?[a-z0-9]+) *Explication, mais elle ne peut pas être vide, + signifie un ou plusieurs.
[.] Traitez les caractères spéciaux (.) comme des caractères ordinaires
[a-z]{2,3} correspond à 2 à 3 lettres anglaises, généralement com ou net, etc.
([.][ a-z] {2}) ? Correspond à 0 ou 1 [.][a-z]{2} (comme .cn, etc.) Je ne sais pas si la dernière partie de .com.cn comporte généralement deux chiffres. Sinon, veuillez. Modifiez {2} en {starting word count, ending word count}
Expression régulière d'e-mail parfaite, avec une explication détaillée, aidez-nous à la tester ! 2. Extrayez l'e-mail dans la chaîne :
<?php function getEmail($str) { $pattern = "/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i"; preg_match_all($pattern,$str,$emailArr); return $emailArr[0]; } $emailstr = "9999@qq.com.cn俺不是米vi地方就开iid邮件列表:fuyongjie@163.com 和hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@sina.com"; $emailArr = getEmail($emailstr); echo "<pre class="brush:php;toolbar:false">"; print_r($emailArr); echo ""; ?>
et exécutez comme suit :
Array ( [0] => 9999@qq.com.cn [1] => fuyongjie@163.com [2] => hh@qq.com [3] => fuyongjie.100@yahoo.com [4] => fu-1999@sina.com )
3. Comparaison : Il n'y a pas d'expression régulière dans la deuxième étape Le premier ^ et $;
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!