PHP正则表达式验证邮箱示例如下:
?php
$email='1909970983@.qq.com';
$pattern="/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
if(preg_match($pattern,$email)){
echo '邮箱验证通过!';
} else{
echo '邮箱格式错误!';
}
?
^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$
这个正则表达式的写法是正确的,但是邮箱地址最后小数点后面的字母只能是2或者3位,比如com或者cn,你的例子aaaaaa太多了,呵呵
[a-z]{2,3}$这个表示结尾只能是2或者3位字母,不是至少2位
z后面那个减号,那个表示中横杠,比如用户名字是aaa-aaa
如果用你举得例子
可以写成
^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{1,20}$
这样表示结尾的字母可以是1到20位
[-+.]这里面的+好像是不行的吧[-.]
(qq)|(yahoo)|(souhu)|(sina)|(gmail)|(hotmail)|(21cn)要写成(qq|yahoo|souhu|sina|gmail|hotmail|21cn)
{1}这个是多余的
同样(com)|(cn)要写成(com|cn)
^\w+([-.]\w+)*@(126|139|163|qq|yahoo|souhu|sina|gmail|hotmail|21cn)\.(com|cn)$
另外此正则不能精确匹配,如你本来是要匹配163.com的邮箱,但163.cn也可以匹配了
再改造如下
^\w+([-.]\w+)*@(126\.com|139\.com|163\.com|qq\.com|yahoo\.com|sohu\.com|sina\.cn|gmail\.com|hotmail\.com|21cn\.cn)$
这些.com/.cn是我瞎写的,你可以自己整理一下
,求高人指点?^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$这个正则表达式的写法是正确的,但是邮箱地址最后小数点后面的字母只能是2或者3位,比如com或者cn,你的例子aaaaaa太多了,呵呵[a-z
箱,但163.cn也可以匹配了再改造如下^\w+([-.]\w+)*@(126\.com|139\.com|163\.com|qq\.com|yahoo\.com|sohu\
(com)|(cn)要写成(com|cn)^\w+([-.]\w+)*@(126|139|163|qq|yahoo|souhu|sina|gmail|hotmail|21cn)\.(com|cn)$另外此正则不能精确匹配,如你本来是要匹配163.com的邮箱,但