Валидатор регулярного выражения не проверяет пустое текстовое поле
-
01-10-2019 - |
Вопрос
Я хотел бы проверить текстовое поле для определенного текста, и он не должен быть пустым. Но валидатор регулярного выражения не проверяется, если текстовое поле ПУСТОЙ. Отказ Однако он подтверждает, если я ввожу что-то в текстовом поле.
Как я могу сделать регулярное выражение, чтобы вызвать, даже если текстовое поле пустое?
Должен ли я использовать необходимый валидатор 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. Если вы объедините это со свободной проверкой, вы можете сохранить все ваши правила проверки для ваших бизнес-объектов в одном месте, и вы можете подтвердить на стороне клиента и на сервере, используя те же правила.
Другие советы
Вы должны объединить ваш RegularExpressionValidator
с А. RequiredFieldValidator
.
Если либо не удается, он будет заблокировать из-за увольнения. Каждый служит цели и RegularExpressionValidator
Назначение - проверять введенный текст не отсутствие текста.
Если вы хотите сделать все это в одном валидателе, вы можете использовать CustomValidator
и установить ValidateEmptyText='true'
. Отказ Затем вы можете использовать Regex JavaScript для проверки. Я бы порекомендовал два валидатора, хотя, так как это стандартный подход.
Вы должны использовать оба одновременно. Не возвращая ошибку проверки, если значение пустое, распространено с помощью элементов управления проверкой ASP.NET. Вы увидите то же поведение от атрибутов валидации в пространстве имен System.comPonentModel.dataNoTations.