Средство проверки регулярных выражений не проверяет пустое текстовое поле

Я хотел бы проверить текстовое поле для конкретного текста, и оно не должно быть пустым. Но валидатор регулярного выражения не проверяется, если текстовое поле пустое. Тем не менее, он проверяет, если я наберу что-то в текстовом поле.

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

Должен ли я использовать Requid Validator + Regex Validator одновременно? Благодарю.

<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>

3 ответа

Решение

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

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

Проверка JQuery

Свободная проверка

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

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

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

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

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