Я хотел бы проверить текстовое поле для определенного текста, и это не должен быть пробел. Но блок проверки допустимости регулярного выражения не проверяет, если текстовое поле является ПРОБЕЛОМ. Однако это проверяет, если я ввожу что-то в текстовом поле.
Как я могу сделать регулярное выражение, чтобы инициировать, даже если текстовое поле пусто?
Я должен использовать Необходимый Блок проверки допустимости + Блок проверки допустимости 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. Если вы объедините это с Fluent Validation, вы можете хранить все свои правила проверки для своих бизнес-объектов в одном месте, и вы можете проверять на стороне клиента и на сервере, используя те же правила.
Вы должны объединить ваш RegularExpressionValidator
с RequiredFieldValidator
.
Если ни один из них не сработает, он будет заблокирован из-за срабатывания валидации. Каждый из них служит своей цели, и цель RegularExpressionValidator
- проверить введенный текст, а не отсутствие текста.
Если вы хотите сделать все это в одном валидаторе, вы можете использовать CustomValidator
и установить ValidateEmptyText='true'
. Затем вы можете использовать javascript regex для проверки. Я бы рекомендовал использовать два валидатора, поскольку это стандартный подход.
Вы должны использовать оба одновременно. Отсутствие возврата ошибки проверки, если значение пустое, является обычным явлением для элементов управления проверкой ASP.NET. Вы увидите такое же поведение атрибутов Validation в пространстве имен System.ComponentModel.DataAnnotations.