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

StackOverflow https://stackoverflow.com/questions/3153568

Вопрос

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

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

Должен ли я использовать необходимый валидатор Validator + 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>
Это было полезно?

Решение

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

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

Валидация jQuery

Свободное подтверждение

Другие советы

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

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

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

Вы должны использовать оба одновременно. Не возвращая ошибку проверки, если значение пустое, распространено с помощью элементов управления проверкой ASP.NET. Вы увидите то же поведение от атрибутов валидации в пространстве имен System.comPonentModel.dataNoTations.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top