js 正则表达式 邮箱正则

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

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

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

[\w-]不包含w字符

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

     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})(\]?)