我正在尝试使用validator.js
验证电子邮件输入。可以,但是有时无法正确验证。
example@gmail.commmmmmm
我想将这种地址分类为无效。我已经尝试使用domain_specific_validation: true
,但这没用。
这个问题有解决方案吗?
P.S。我不想使用正则表达式。
答案 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 )
希望有帮助。