Heim  >  Artikel  >  Backend-Entwicklung  >  Implementierung und detaillierte Erläuterung des regulären Ausdrucks von E-Mail-Adressen in PHP

Implementierung und detaillierte Erläuterung des regulären Ausdrucks von E-Mail-Adressen in PHP

高洛峰
高洛峰Original
2016-12-01 09:40:231244Durchsuche

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!“;
}

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn