Блок проверки допустимости Регулярного выражения не проверяет пустое текстовое поле

Я хотел бы проверить текстовое поле для определенного текста, и это не должен быть пробел. Но блок проверки допустимости регулярного выражения не проверяет, если текстовое поле является ПРОБЕЛОМ. Однако это проверяет, если я ввожу что-то в текстовом поле.

Как я могу сделать регулярное выражение, чтобы инициировать, даже если текстовое поле пусто?

Я должен использовать Необходимый Блок проверки допустимости + Блок проверки допустимости Regex одновременно?Спасибо.

<asp:TextBox ID="txtcard" runat="server" MaxLength="16"></asp:TextBox>

<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
ControlToValidate="txtcard" ErrorMessage="Please type credit card no" 
ValidationExpression="^\d{16}$"></asp:RegularExpressionValidator>
5
задан Daniel Dyson 1 July 2010 в 09:25
поделиться

3 ответа

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

Другой вариант, который я бы порекомендовал любому веб-разработчику, - это подключаемый модуль проверки JQuery. Если вы объедините это с Fluent Validation, вы можете хранить все свои правила проверки для своих бизнес-объектов в одном месте, и вы можете проверять на стороне клиента и на сервере, используя те же правила.

Проверка JQuery

Плавная проверка

3
ответ дан 13 December 2019 в 19:20
поделиться

Вы должны объединить ваш RegularExpressionValidator с RequiredFieldValidator.

Если ни один из них не сработает, он будет заблокирован из-за срабатывания валидации. Каждый из них служит своей цели, и цель RegularExpressionValidator - проверить введенный текст, а не отсутствие текста.

Если вы хотите сделать все это в одном валидаторе, вы можете использовать CustomValidator и установить ValidateEmptyText='true'. Затем вы можете использовать javascript regex для проверки. Я бы рекомендовал использовать два валидатора, поскольку это стандартный подход.

5
ответ дан 13 December 2019 в 19:20
поделиться

Вы должны использовать оба одновременно. Отсутствие возврата ошибки проверки, если значение пустое, является обычным явлением для элементов управления проверкой ASP.NET. Вы увидите такое же поведение атрибутов Validation в пространстве имен System.ComponentModel.DataAnnotations.

3
ответ дан 13 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: