Heim > Artikel > Backend-Entwicklung > Implementierung und detaillierte Erläuterung des regulären Ausdrucks von E-Mail-Adressen in PHP
Fügen Sie zuerst den Code hinzu
Kopieren Sie den Code. Der Code lautet wie folgt:
^[_.0-9a-z-]+@([0-9a-z][0-9a-z- ]+.) +[a-z]{2,3}$
In diesem regulären Ausdruck bedeutet „+“, dass die vorherige Zeichenfolge ein oder mehrere Mal hintereinander vorkommt; „^“ bedeutet, dass die nächste Zeichenfolge in erscheinen muss Am Anfang bedeutet „$“, dass am Ende die vorherige Zeichenfolge stehen muss kann 2-3 mal ununterbrochen auftreten. „()“ gibt an, dass der enthaltene Inhalt auch im Zielobjekt erscheinen muss. „[_.0-9a-z-]“ bezeichnet jedes Zeichen, das in „_“, „.“, „-“, Buchstaben im Bereich von a bis z und Zahlen im Bereich von 0 bis 9 enthalten ist >Auf diese Weise kann dieser reguläre Ausdruck wie folgt übersetzt werden:
„Die folgenden Zeichen müssen am Anfang stehen (^)“, „Dieses Zeichen muss in „_“, „.“, „-“ enthalten sein, von a bis Buchstaben im z-Bereich, Zahlen im Bereich 0 bis 9 ([_.0-9a-z-])“, „Das vorangehende Zeichen kommt mindestens einmal vor (+)“, @, „Die Zeichenfolge besteht aus Beginnt mit einem Buchstaben im Bereich von a bis z, einer Zahl im Bereich von 0 bis 9, gefolgt von mindestens einem in „-“ enthaltenen Zeichen, einem beliebigen Buchstaben im Bereich von a bis z im Bereich von 0 bis 9. Beliebiges Zeichen in eine Zahl endet mit . (([0-9a-z][0-9a-z-]+.))“, „Das vorherige Zeichen kommt mindestens einmal vor (+)“, „Von a bis Buchstaben im z-Bereich erscheint 2-3 Mal und endet damit ([a-z]{2,3}$)“
Code kopieren Der Code lautet wie folgt:
function is_valid_email($email, $test_mx = false)
{
if(eregi("^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(. [a- z0-9-]+)*(.[a-z]{2,4})[ wind_phpcode_0 ]quot;, $email))
if($test_mx)
{
list($ username, $ domain) = split("@", $email);
return getmxrr($domain, $mxrecords);
else
return true;
}
Der Domainname besteht aus einer beliebigen Kombination spezifischer Zeichensätze, englischer Buchstaben, Zahlen und „-“ (d. h. Bindestrich oder Minuszeichen) in jedem Land, darf aber nicht am Anfang oder enthalten am Ende dürfen „-“ und „-“ nicht nacheinander erscheinen. Die Groß-/Kleinschreibung wird nicht beachtet. Der Domainname kann bis zu 60 Byte lang sein (einschließlich Suffix .com, .net, .org usw.).
/^[a-z]. ([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a -z0-9]+)+[ .][a-z]{2,3}([.][a-z]{2})?$/i
/content/i bildet einen regulären Ausdruck, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird;
^ beginnt mit der Übereinstimmung
$ Ende der Übereinstimmung
[a-z] E-Mail-Präfix muss mit einem englischen Buchstaben beginnen
([a-z0-9]* [-_]?[a -z0-9]+)* stimmt mit _a_2, aaa11, _1_a_2 überein, aber nicht mit a1_, aaff_33a_, a__aa. Wenn es sich um ein Nullzeichen handelt, bedeutet es auch 0 oder mehr.
* steht für 0 oder mehr vorherige Zeichen
[a-z0-9]* entspricht 0 oder mehr englischen Buchstaben oder Zahlen
[-_ ] Entspricht 0 oder? 1 „-“, da „-“ nicht fortlaufend erscheinen kann
[a-z0-9]+ Entspricht einem oder mehreren englischen Buchstaben oder Zahlen, da „-“ nicht als Endung verwendet werden kann
@ muss @ haben
([a-z0-9]*[-_]?[a-z0-9]+)+ Siehe oben ([a-z0 -9]*[-_]? [a-z0-9]+)* Erklärung, aber es darf nicht leer sein, + bedeutet eins oder mehrere.
[.] Sonderzeichen (.) wie gewöhnliche Zeichen behandeln
[a-z]{2,3} entspricht 2 bis 3 englischen Buchstaben, normalerweise com oder net usw.
([.][a-z]{2})? Entspricht 0 oder 1 [.][a-z]{2} (wie .cn usw.) Ich weiß nicht, ob der letzte Teil von .com.cn ist im Allgemeinen alles zweistellig. Wenn nicht, ändern Sie bitte {2} in {Anzahl der Anfangswörter, Anzahl der Endwörter}
Perfekter regulärer E-Mail-Ausdruck, mit ausführlicher Erklärung, bitte helfen Sie beim Testen! 2. E-Mail aus der Zeichenfolge extrahieren:
Code kopieren Der Code lautet wie folgt:
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 Ich bin kein Mivi-Ort, also habe ich die iid-Mailingliste geöffnet: fuyongjie@163.com und hh@qq.com;.;;, fuyongjie.100@yahoo .com,fu-1999 @sina.com";
$emailArr = getEmail($emailstr);
echo "
";
print_r($emailArr);
echo "< ;/pre>";
?>Drucken Sie wie folgt:
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. Vergleich: Das erste ^ und $ sind nicht im zweiten regulären Ausdruck enthalten
Sehen Sie sich das Beispiel noch einmal an
Kopieren Sie den Code. Der Code lautet wie folgt:
Funktion funcemail ($str)//Mailbox regulärer Ausdruck
{
return (preg_match('/^[_.0-9a-z-a-z-]+@([0-9a-z][0-9a-z- ]+.)+[a-z]{2, 4}$/',$str))?true:false
}//Überprüfungsmethode eins
$str="qbcd@126.com.cn" ;
preg_match("/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2,3}$/",$str,$re); 🎜>print_r($re);//E-Mail-Verifizierung 2
if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-] +.)+[a-z]{2,3}$",$email)) {
echo „Ihre E-Mail hat die vorläufige Prüfung bestanden“;
}//Die dritte E-Mail-Verifizierungsmethode
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 E-Mail-Adresse ist korrekt!“;}
else{
echo „Bitte versuchen Sie es erneut!“;
}