Validator.js возвращает недействительный на случайных адресах Gmail - PullRequest
0 голосов
/ 06 июня 2018

Я создаю приложение mern и использую validator.js для проверки основного формата электронной почты.

Все работает правильно, однако некоторые случайные адреса электронной почты возвращаются как недействительные электронные письма

пример: 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
},

Кто-нибудь испытывал нечто подобное?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018
В модуле validator.js

реализованы специальные проверки для доменов "gmail.com" и "googlemail.com".Согласно gmail, минимальная длина имени пользователя должна быть 6, а максимально допустимая может быть 30. Те же проверки включены в модуль Validator.js.

По этой причине у вас не получится, если длина имени пользователя меньше, чем '6' для gmail, и не сбоит, если вы используете домен, отличный от 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

Надеюсь, это прояснилось.

0 голосов
/ 06 июня 2018

Я предлагаю вам использовать 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>

для CustomValidaor, который использует функцию JS, вы можете использовать эту функцию:

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>
...