正则验证邮箱格式,正则验证邮箱php

hacker2022-09-27黑客服务164

php验证邮箱格式

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 '邮箱格式错误!';

}

?

对php中正则表达式验证邮箱代码的疑惑,求高人指点?

^[_\.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位

关于php正则验证邮箱

[-+.]这里面的+好像是不行的吧[-.]

(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是我瞎写的,你可以自己整理一下

评论列表

访客
访客
2022-09-27

1cn\.cn)$这些.com/.cn是我瞎写的,你可以自己整理一下

访客
访客
2022-09-27

,求高人指点?^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$这个正则表达式的写法是正确的,但是邮箱地址最后小数点后面的字母只能是2或者3位,比如com或者cn,你的例子aaaaaa太多了,呵呵[a-z

访客
访客
2022-09-27

箱,但163.cn也可以匹配了再改造如下^\w+([-.]\w+)*@(126\.com|139\.com|163\.com|qq\.com|yahoo\.com|sohu\

访客
访客
2022-09-27

(com)|(cn)要写成(com|cn)^\w+([-.]\w+)*@(126|139|163|qq|yahoo|souhu|sina|gmail|hotmail|21cn)\.(com|cn)$另外此正则不能精确匹配,如你本来是要匹配163.com的邮箱,但

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。