2014-10-30 65 views
0

我正在使用JörnZaefferer的jquery.validate.js。jquery.validate.js需要域后缀的电子邮件验证

所有的校验设置完全用下面的代码:

$("#homeForm").validate({ 
    rules: { 
      email: { 
        required: true, 
        email: true        
      }, 
      mobile:{ 
        required:true, 
        minlength:11, 
        maxlength:11, 
      } 
    }, 
}); 

我的问题是,默认的电子邮件验证将允许用户离开了域名后缀,例如测试@试验成功验证。 ..

我想我的电子邮件验证,要求用户包括电子邮件,他们输入(.COM,.co.uk ETC)

有没有人有一个解决这个问题的域名后缀?提前感谢...

+0

我使用该脚本,它不让我typ'test @ test'。 – Barmar 2014-10-30 10:06:17

+0

@Barmar http://jsfiddle.net/arunpjohny/qvm047hw/1/ - 你使用的是什么版本?即使在1.13.0中也有同样的错误 - [1.13.0](http://jsfiddle.net/arunpjohny/qvm047hw/2/) – 2014-10-30 10:08:12

+0

我的应用程序使用1.10.0,也许它从那时起就改变了? – Barmar 2014-10-30 10:11:55

回答

-2

所以,我似乎找到了通过.js文件带小挖的解决方案:

 email: function(a, b) { 
      return this.optional(b) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a) 
     }, 

到:

我从改变默认的电子邮件规则:

 email: function(a, b) { 
      return this.optional(b) || /^[\w-\.][email protected]([\w-]+\.)+[\w-]{2,4}$/.test(a) 
     }, 

现在的作品完美,奇怪的错误的位,但我希望这可以帮助其他人谁发现了同样的问题

+2

这不是一个错误,它是故意的,以匹配HTML5规范。 – Barmar 2014-10-30 10:21:07

+0

我不确定我的理解。我们仍然为非HTML5浏览器开发... – JamesHusband 2014-10-30 10:47:20

+0

他正在验证HTML5中的验证。 – Barmar 2014-10-30 10:51:45