验证器.js在随机 Gmail 地址上返回无效



我正在创建一个mern应用程序并使用验证器.js来执行一些基本的电子邮件格式验证。

一切正常,但是一些随机的gmail地址返回为无效的电子邮件

示例:test@gmail.com返回无效,而testtest@gmail.com注册完全正常。

我也尝试1@1.com以确保它不是一个长度的东西

这是我的验证

// Check to make sure email is formatted correctly
if (!Validator.isEmail(data.email)) {
errors.email = 'Invalid Email'
}

这是我的猫鼬模型

email: {
type: String,
trim: true,
lowercase: true,
required: true,
unique: true
},

有没有人经历过类似的事情?

验证器.js模块已经实现了域"gmail.com"和"googlemail.com"的特殊验证。根据 gmail,用户名的最小长度应为 6,允许的最大值为 30。相同的验证包含在验证器.js模块中。

这就是为什么,如果Gmail的用户名长度小于" 6",则不会失败,如果您使用的是Gmail以外的域,则不会失败。还有一件事,最小长度不包括点。

所以

1. test1@gmail.com --> fails.
2. test12@gmail.com --> success
3. test.1@gmail.com  --> fails
4. test.12@gmail.com -- success
5. ab@mydomain.com --> success

希望这一点得到澄清。

我建议你使用RegularValidationExpressionValidator

<asp:RegularExpressionValidator ID="RegularExpressionValidator_Email" runat="server" ClientIDMode="AutoID" ControlToValidate="TB_Email" ErrorMessage="*Email is invalid" ValidationExpression="w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*"></asp:RegularExpressionValidator>

对于使用 JS 函数的 CustomValidaor,您可以使用此函数:

function ValidateEmail(source, args)
{
if(!(/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/.test(args.Value)))
{ args.IsValid = false; }
} 

这是前面代码中的 CustomValidaor:

<asp:CustomValidator runat="server" ControlToValidate="TextBox_Email" ClientValidationFunction="ValidateEmail"></asp:CustomValidaor>

最新更新