Home > Article > Backend Development > PHP email address regular expression implementation and detailed explanation_PHP tutorial
This article not only tells about regular expressions, but also explains the composition and usage of email regular expressions. Friends who need to know more can refer to it. At the same time, we also provide a variety of different email verification examples.
Regular expression
代码如下 | 复制代码 |
^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$ |
In this regular expression, "+" means that the previous string appears one or more consecutively; "^" means that the next string must appear at the beginning, and "$" means that the previous string must appear at End;
"." is also ".", where "" is an escape character; "{2,3}" means that the previous string can appear 2-3 times in a row. "()" indicates that the contained content must also appear in the target object. "[_.0-9a-z-]" means any character contained in "_", ".", "-", letters in the range from a to z, and numbers in the range from 0 to 9;
In this way, this regular expression can be translated like this:
"The following characters must begin with (^)", "The character must be contained in "_", ".", "-", letters in the range from a to z, numbers in the range from 0 to 9 ([ _.0-9a-z-])", "The previous character appears at least once (+)", @, "The string consists of a letter contained in the range from a to z, from 0 to 9 begins with a character in a number, followed by at least one character contained in "-", any letter in the range from a to z, any number in the range from 0 to 9, and finally ends with . (([0-9a -z][0-9a-z-]+.))", "The previous character appears at least once (+)", "Letters in the range from a to z appear 2-3 times and end with it ([ a-z]{2,3}$)”
The code is as follows | Copy code | ||||
function is_valid_email($email, $test_mx = false )
|
The domain name is composed of any combination of specific character sets of various countries, English letters, numbers and "-" (i.e. hyphen or minus sign), but it cannot contain "-" at the beginning or at the end, 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;
^ Matching starts
$ Match ends
[a-z] 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_, a__aa. If it is a null character, It is also matching, * means 0 or more.
* represents 0 or more preceding characters.
[a-z0-9]* matches 0 or more English letters or numbers
[-_]? Matches 0 or 1 "-", because "-" cannot appear continuously
[a-z0-9]+ matches 1 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 normal 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 generally It is two digits. If not, please change {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 the string:
The code is as follows
|
Copy code
|
||||
代码如下 | 复制代码 | ||||
function funcemail($str)//邮箱正则表达式 $str="qbcd@126.com.cn"; if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
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)){ |
$emailstr = "9999@qq.com.cn I am not a Mivi place, so I opened the iid mailing list: fuyongjie@163.com and hh@qq.com;.;;, fuyongjie.100@yahoo.com, fu-1999@ sina.com";