MVC5 ModelClientValidationRegexRule всегда терпит неудачу

В моем пользовательском атрибуте проверки у меня есть следующее:

yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "/^[A-Za-z0-9\\s]+$/i");

Предполагается принимать только буквы, цифры и пробелы. Теперь что касается HTML, вот что генерируется:

<input data-val="true" data-val-regex="Only letters, numbers, and spaces are allowed" data-val-regex-pattern="/^[A-Za-z0-9\s]+$/i" data-val-required="Alias is required" id="Alias" name="Alias" placeholder="Alias" type="text" value="" >

Когда я набираю поле, оно всегда активируется, и я вижу сообщение об ошибке, независимо от того, что я печатаю. Правильно ли мое регулярное выражение или здесь что-то еще играет? Из того, что я читал в Интернете, мое регулярное выражение кажется правильным

1 ответ

Решение

Точность. на этот ресурс, значение, которое вы передаете внутри data-val-regex-pattern является строковым шаблоном, а не объектом регулярного выражения, и он уже привязан.

Итак, поскольку вы уже добавили строчные буквы ASCII в свой класс символов, вы можете просто использовать

yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "[A-Za-z0-9\\s]+");

или (так как удвоение ^ а также $ не вредит), вы также можете попробовать "^[A-Za-z0-9\\s]+$"

Другие вопросы по тегам