Регулярные выражения не работают в проверке jQuery

0

Мне трудно получать регулярные выражения для работы с jQuery Validation. Предположим, что я беру простое регулярное выражение, для которого требуется минимум 8 символов:

(?=.{8,})

Если вы подключаете это к тестеру регулярных выражений на основе JavaScript, все работает отлично. 8 или более символов совпадают, 7 или меньше нет.

Кроме того, если я тестирую это на С#, он также работает:

        var regex = new Regex(@"(?=.{8,})");
        if (regex.IsMatch(myInput))
        {
            // Hits this code when myInput >= 8 characters
        }

Затем я использую ValidationAttribute в модели представления, чтобы испускать проверку jQuery, чтобы убедиться, что пользовательский ввод соответствует выражению:

    [RegularExpression(@"(?=.{8,})", ErrorMessage="Does not match.")]
    public string MyInput { get; set; }

На данный момент он ломается. Неважно, что я набираю в поле, не соответствует. Выпущенный HTML выглядит следующим образом:

    <input data-val="true" data-val-regex="Does not match." 
            data-val-regex-pattern="(?=.{8,})"  id="MyInput" name="MyInput"
            type="text" value="" />

Я пробовал разные регулярные выражения, но безуспешно. Есть ли что-то другое в регулярных выражениях в jQuery Validation, которые я игнорирую?

Теги:
validation

1 ответ

1
Лучший ответ

Возможно, это работает:

RegularExpression(@"^.{8,}$")

Надеюсь это поможет. ура

  • 0
    Интересно. Это регулярное выражение работает на веб-странице, но не выполняется в коде сервера. В основном обратная сторона моей первоначальной проблемы. Как будто мне нужно сопоставить входные данные с двумя различными регулярными выражениями, одно в браузере, а другое для проверки обратно на сервере. Странный.
  • 0
    Хм, странно. А как насчет RegularExpression(@".{8,}") ?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню