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