Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Регулярное выражение аннотации данных mvc

Автор вопроса: gdubsОтветов: 2

Я только начал возиться с регулярными выражениями, но в основном с этим (который я нашел в Интернете, кстати) предполагается, что пароль должен быть между 8-10, но всякий раз, когда я пробую его и ввожу правильную длину, он все еще показывает сообщение об ошибке. Любые идеи? мне также нужно включить 1 строчную, 1 прописную и 1 цифру при проверке.

public class password : IValidatableObject
{
    [Required]
    [RegularExpression("(?=^.{8,10}$)", ErrorMessage = "Password is invalid.")]
    public string ConfirmPWD { get; set; }
    [Required(ErrorMessage="Confirm Password field is required.")]
    public string ConfirmPWD { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (ConfirmPWD != ConfirmPWD )
            yield return new ValidationResult("Not identical.");
    }
}

passwordsentity-frameworkdata-annotations

Ответы

Ответ 1 · рейтинг 1 · Waylon Flinn

Вы, вероятно, хотите что-то вроде этого:

[RegularExpression(@"^.{8,10}$", ErrorMessage = "Must be between 8 and 10 characters.")]

Ответ 2 · David Wick

попробуйте просто ".{8,10}". кроме того, более конкретное сообщение об ошибке может быть полезно для ваших пользователей.

Редактировать: если подумать, почему бы просто не использовать StringLengthAttribute для этого...

[StringLength(10, MinLength = 8, ErrorMessage = "Password must be between 8 and 10 characters")]

затем вы можете использовать регулярное выражение для своих более конкретных правил, таких как требуемая сложность.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы