使用validateator.js进行的电子邮件验证无法正常工作

时间:2018-10-08 11:20:05

标签: javascript reactjs validation

我正在尝试使用validator.js验证电子邮件输入。可以,但是有时无法正确验证。

  

example@gmail.commmmmmm

我想将这种地址分类为无效。我已经尝试使用domain_specific_validation: true,但这没用。

这个问题有解决方案吗?

P.S。我不想使用正则表达式。

1 个答案:

答案 0 :(得分:1)

根据validator.js代码库,it only checks if top level domain (tld) matches the specific regexp。作为tld list can always be extended via new registered items,这似乎是正确的解决方案。因此,commmmmmm可能可能是 tld,这就是为什么验证返回true的原因。

其他解决方案可能是检查tld是否在registered tld list中,您可以为此使用tld-list npm package

const tldList = require('tld-list');
tldList.includes('example@gmail.commmmmmm'.split('.').pop());

但是此解决方案需要不断更新此软件包,以便能够跟踪新的顶级域名。

还有一个validate-tld软件包,它确实向注册服务请求以检查tld是否有效:

var validateTld = require("validate-tld")
new validateTld().validate('commmm').then( console.log )

希望有帮助。