E-mail, like ordinary mail, also requires an address. The difference between it and ordinary mail is that it is an electronic address. All users with mailboxes on the Internet have one or several email addresses of their own, and these email addresses are all unique. The mail server sends each email to each user's mailbox based on these addresses. The Email address is the user's mailbox address. Just like regular mail, whether you can receive your email depends on whether you have obtained the correct email address. A complete Internet email address is composed of the following two parts. The format is as follows: login name@hostname.domain name. It is separated by a symbol "@" representing "at" (at) in the middle. The symbol The left side of is the other party's login name, and the right side is the complete host name, which consists of the host name and domain name. Among them, the domain name consists of several parts, each part is called a subdomain (Subdomain), and each subdomain is separated by a dot ".". Each subdomain will tell the user some information about this mail server.
php Regular matching email code
1. Verify email:
< ?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!"; } ?>
or
$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);
matches the
regular expression of the Email mailbox format Formula /content/i constitutes a case-insensitive regular expression;^ Match start
$ Match end
[a-z] The E-Mail prefix must start with an English letter
([a-z0-9]*[-_]?[a-z0-9]+)* and match _a_2, aaa11, _1_a_2, and a1_, aaff_33a_, and aaa do not match. If they are empty characters, they are also matched. * means 0 or more.
* represents 0 or more previous characters.
[a-z0-9]* matches 0 or more English letters or numbers
[-_]? matches 0 or 1 "- ", because "-" cannot appear continuously
[a-z0-9]+ matches one or more English letters or numbers, because "-" cannot be used as the end
@ There must be one @
([a-z0-9]*[-_]?[a-z0-9]+)+ see above ([a-z0-9]*[-_]?[a-z0-9 ]+)* explanation, but it cannot be empty, + means one or more.
[\.] Treat
special characters
(.) as ordinary characters [a-z]{2,3} to match 2 to 3 English letters, usually com or net, etc. ([\.][a-z]{2})? Matches 0 or 1 [\.][a-z]{2} (such as .cn, etc.) I don’t know if the last part of .com.cn is generally It is two digits. If not, please modify {2} to {number of starting words, number of ending words}
This regular expression used to match email addresses is relatively strong, powerful, wide-coverage, and useful. Save it for your friends.
The format of the international domain name is as follows:
The domain name is composed of any combination of the specific
character set
of each country's language, English letters, numbers and "-" (i.e. hyphen or minus sign). However, neither the beginning nor the end can contain "-", and "-" cannot appear continuously. Letters in domain names are not case-sensitive. The domain name can be up to 60 bytes long (including 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 forms a case-insensitive Regular expression;
^ Match start
$ Match end
[a-z] The E-Mail prefix must start with an English letter
([a-z0-9]*[-_]?[ a-z0-9]+)* matches _a_2, aaa11, _1_a_2, but does not match a1_, aaff_33a_, aaa. If it is a null character, it will also match. * means 0 or more.
* represents 0 or more previous characters.
[a-z0-9]* matches 0 or more English letters or numbers
[-_]? matches 0 or 1 "- ", because "-" cannot appear continuously
[a-z0-9]+ matches one or more English letters or numbers, because "-" cannot be used as the end
@ There must be @
([a-z0-9]*[-_]?[a-z0-9]+)+ see above ([a-z0-9]*[-_]?[a-z0-9]+) *Explanation, but it cannot be empty, + means one or more.
[\.] Treat special characters (.) as ordinary characters
[a-z]{2,3} matches 2 to 3 English letters, usually com or net, etc.
([\. ][a-z]{2})? Matches 0 or 1 [\.][a-z]{2} (such as .cn, etc.) I don’t know if the last part of .com.cn is usually two digits. If not, please modify {2} to {number of starting words, number of ending words}
Perfect E-Mail regular expression, with detailed explanation, please help test it! 2. Extract the email in
String
: <?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 "
";
?>
Array ( [0] => 9999@qq.com.cn [1] => fuyongjie@163.com [2] => hh@qq.com [3] => fuyongjie.100@yahoo.com [4] => fu-1999@sina.com )
The above is the detailed content of PHP uses regular expressions to verify email addresses. For more information, please follow other related articles on the PHP Chinese website!