Le code de courrier électronique correspondant régulièrement en PHP est analysé plus en détail. J'espère que les amis qui ont des questions à ce sujet pourront y jeter un œil.
CODE:
1. <?php
2. si (ereg(“/^[az]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[- _]?[a-z0-9]+)+[.][az]{2,3}([.][az]{2})?$/i ”,$email)){
3. echo « Votre adresse e-mail est correcte ! » ;}
4.sinon{
5. echo « Veuillez réessayer ! » ;
6. }
7. ?>
Le format du nom de domaine international est le suivant :
Le nom de domaine est composé de toute combinaison de jeux de caractères spécifiques, de lettres anglaises, de chiffres et de « - » (c'est-à-dire des traits d'union ou des signes moins) dans divers pays. Toutefois, « - » ne peut pas être inclus au début ou à la fin, 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.).
/^[az]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9 ]+)+[.][az]{2,3}([.][az]{2})?$/i;
/content/i forme une expression régulière insensible à la casse ;
^ le match commence
$ Fin du match
[az] 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_, a__aa. S'il s'agit d'un caractère nul, il le sera. 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 consécutivement
[a-z0-9]+ correspond à 1 ou plusieurs lettres ou chiffres anglais, car "-" ne peut pas être utilisé comme fin
@ Il doit y en avoir un @
([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
[az]{2,3} correspond à 2 à 3 lettres anglaises, généralement com ou net, etc.
([.][az]{2}) ? Correspond à 0 ou 1 [.][az]{2} (comme .cn, etc.) Je ne sais pas si la dernière partie de .com.cn est généralement deux chiffres, sinon, veuillez remplacer {2} par {nombre de mots de début, nombre de mots de fin}
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
fonction getEmail($str) {
$motif = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0 -9]+)+[.][az]{2,3}([.][az]{2})?/i";
preg_match_all($pattern,$str,$emailArr);
retourner $emailArr[0] ;
}
$emailstr = " [email protected] Je ne suis pas de Mivi, j'ai donc ouvert la liste de diffusion iid : [email protected] et [email protected] ;.;;, [email protected], [email protected] " ;
$emailArr = getEmail($emailstr);
echo "<pré>" ;
print_r($emailArr);
echo "</pre>";
?>
Imprimez comme suit :
Tableau
(
[0] =>[email protected]
[1] =>[email protected]
[2] =>[email protected]
[3] =>[email protected]
[4] =>[email protected]
)
3. Comparaison : l'expression régulière dans la seconde n'a pas le ^ et le $ dans la première ;