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]+$"