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

来源:百度知道 编辑:UC知道 时间:2024/05/30 07:36:48
对于这个“^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$”邮箱验证正则表达式,为什么我输入___@00.00.aaaaaaaa显示不正确了?请问我如下的理解正确吗?

开头字符必须是一个或多个下划线或一个或多个0-9之间的数字或一个或多个小写字母或这些不同的多次重复组合。(z后面那个减号该怎么理解啊?这个我不懂)
接下来的跟一个@符号。
接下来是或字母或数字或点号或这些多次重复组合。
接下来是末尾字符必须是字母且至少有两位。

请高手帮我看看该如何理解这个验证邮箱的正则表达式吧?最好多举几个特殊的例子(比如_7@2a.bcc.comcom等等)帮助讲解啊?

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

z后面那个减号就表示一个字符‘-’,
[a-z]:a~z之间的字符

接下来是或字母或数字或点号或这些多次重复组合,应该是
‘@’后面第一个必须为字母或数字,不能是‘-’

接下来是末尾字符必须是字母且至少有两位。
但最多有3位而已。

我的最实用:

^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$

gmail是可以输入 . 符号的 在前面那段加入 \.

^([a-zA-Z0-9_-]|[a-zA-Z0-9_-]\.)+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$