2 a15115071701 A15115071701 于 2015.06.09 22:17 提问

js 正则表达式 邮箱正则
 /([\w-\.]+)@
(
(
\[
[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/

这个正则表达式在@后的第二个小括号之后有一个 [ ,这个东西是什么意思,为什么当字符串出现 [ 时,却匹配不了??

3个回答

u013538542
u013538542   2015.06.09 22:34

它是左中括号,右中括号在倒数第三位的问号前面,它们是一对

A15115071701
A15115071701 回复小睿哥哥: 你这个正则有一个问题就是域名没有长度限制,该如何限制???
2 年多之前 回复
u013538542
u013538542 这样就行
2 年多之前 回复
u013538542
u013538542 /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
2 年多之前 回复
u013538542
u013538542 邮箱验证不用这么麻烦
2 年多之前 回复
A15115071701
A15115071701 是啥意思,要怎么匹配,能详细的说说吗
2 年多之前 回复
frank_20080215
frank_20080215   2015.06.09 22:54

[\w-]不包含w字符

showbo
showbo   Ds   Rxr 2015.06.10 10:52

如果是邮箱正则你的正则肯定不对,正则怎么可能有中括号,不匹配是因为你传递的字符串不对,不符合正则

     var rx = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/

    alert(rx.test('aaa@[11.22.22.22')); //true

拆开成这样你也许看的明白点要匹配什么内容

 ([\w-\.]+)@

(

(\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+)

)

([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)
A15115071701
A15115071701 这个正则的问题是@前面部分不一定要存在.
2 年多之前 回复
showbo
showbo 回复A15115071701: /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/
2 年多之前 回复
A15115071701
A15115071701 谢谢,请教一个正确的验证邮箱格式的正则表达式。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!