#c# #regex #asp.net-core #data-annotations #modelstate
#c# #регулярное выражение #asp.net-core #данные-аннотации #modelstate
Вопрос:
У меня есть простая аннотация данных регулярных выражений
[RegularExpression(@"d{5}", ErrorMessage = "Zipcode must be exactly 5 digits")]
public string Zipcode
{
get;set;
}
Когда значение почтового индекса равно «12345»
Модель.isValid возвращает false .
Ответ №1:
Попробуйте это, он используется для проверки почтового индекса. Почтовый индекс должен содержать 5 цифр и не должен быть 00000. [Регулярное выражение(@»^(?!00000)[0-9]{5,5}$», ErrorMessage = «Почтовый индекс должен содержать 5 цифр»)]
Комментарии:
1. Спасибо за ваш ответ. Я привел Zipcode в качестве примера. Мое требование заключается в том, что строка должна содержать 5 цифр. Регулярное выражение работает в консольном приложении с регулярным выражением.match однако на страницах razor модель недействительна с тем же регулярным выражением.
2. Попробуйте это [RegularExpression(@»^( d{5}) $», ErrorMessage = «Сообщение об ошибке»)] Обычно он используется в примечаниях к данным вместо этого напрямую.
3. Спасибо, что сработало. Все еще любопытно, почему исходное регулярное выражение работало в консольном приложении, но не при проверке модели.
4. Я думаю, это потому, что он использует разные пространства имен.
5. Ценю вашу помощь.