我通过以下正则表达式验证邮箱地址是否有效:
^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$现在的问题是:如何修改上面的正则表达式,使其能够用一个正则表达式验证邮箱地址是否有效,并且整个邮箱地址的长度不能超过 50个长度?
或者有其他的正则表达式能够达到这个效果。
请注意:是一个正则表达式就要完成 地址是否有效和长度是否在50个字符的验证(因为程序功能限制,必须是一个正则表达式完成控制)。
而不是先验证是否有效,再通过.length进行长度判断。恳请高手指点。

解决方案 »

  1.   

    我靠,说说"而不是先验证是否有效,再通过.length进行长度判断。"能有什么坏处??
    不是所有的代码都要一句话的!!!!
      

  2.   

    试试这个:^(?=\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$).{0,50}$
      

  3.   

    在Javascript中要这样写:/^(?=\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$).{0,50}$/
      

  4.   

    表达式中用了太多的 +  *  之类的长度匹配不如这样来:function isEmail(str)
    {
      var reg=/\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
       return (reg.test(str) && str.length<50);
    }
      

  5.   

    /^(?=\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$).{0,50}$/不要为了正则表达式而正则表达式啊,有时候用正则表达式效率也不一定高,可能它本身的实现就是用length实现的,所以你直接用length去判断效率会更高
      

  6.   

    可以用Ext的,一个属性就搞定