正則1:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+$/
正則2:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/
要匹配 [email protected],為什麼2可以,1不行,如果正則2是對的話,那匹配[email protected]@#這樣的也可以,豈不是會出問題。

解决方案 »

  1.   

    你两个正则都写错了\.应该在括号的外面,如下
    正則1:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+$/
    正則2:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+\.([a-zA-Z0-9_-])+/这样的话,正则1就正确了
      

  2.   

    楼主的2过都是错的。正則2:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/这个仔细看,其实在对[email protected]匹配时候,匹配的部分是
    [email protected]    原因(\.[a-zA-Z0-9_-])+指 重复1次以上的“点号+1个字母数字”
    你的匹配成功判断用的什么函数,是has形式的函数吧,换成is形式的函数,保证不再是匹配结果。这样写可能比较合适:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/因为有[email protected]这种后最多次.xx的邮箱存在吧