Средство проверки регулярных выражений не проверяет пустое текстовое поле
Я хотел бы проверить текстовое поле для конкретного текста, и оно не должно быть пустым. Но валидатор регулярного выражения не проверяется, если текстовое поле пустое. Тем не менее, он проверяет, если я наберу что-то в текстовом поле.
Как я могу сделать регулярное выражение для запуска, даже если текстовое поле пусто?
Должен ли я использовать 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. Если вы объедините это с "Свободной проверкой", вы сможете хранить все свои правила проверки для своих бизнес-объектов в одном месте и выполнять проверку на стороне клиента и на сервере с использованием тех же правил.
Вы должны объединить свои RegularExpressionValidator
с RequiredFieldValidator
,
В случае сбоя любой из них блокируется из-за запуска проверки. Каждый служит цели и RegularExpressionValidator
Цель состоит в том, чтобы проверить введенный текст, а не отсутствие текста.
Если вы хотите сделать все это в одном валидаторе, вы можете использовать CustomValidator
и установить ValidateEmptyText='true'
, Затем вы можете использовать регулярное выражение javascript для проверки. Я бы порекомендовал два валидатора, так как это стандартный подход.
Вы должны использовать оба одновременно. Не возвращать ошибку проверки, если значение пусто, часто встречается в элементах проверки ASP.NET. Такое же поведение вы увидите в атрибутах Validation в пространстве имен System.ComponentModel.DataAnnotations.