Средство проверки регулярных выражений не проверяет пустое текстовое поле - PullRequest
5 голосов
/ 01 июля 2010

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

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

Должен ли я использовать 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 ]

5 голосов
/ 01 июля 2010

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

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

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

3 голосов
/ 01 июля 2010

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

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

Проверка JQuery

Проверка достоверности

3 голосов
/ 01 июля 2010

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

...