Asp.net Range Validator
HTML (полный код)
<asp:TextBox ID="txtSasiNo" runat="server" Width="250px" MaxLength="17"></asp:TextBox>
<asp:RegularExpressionValidator CssClass="zorunlu" ValidationGroup="kaskoTeklifSayfasi" Display="Dynamic" ID="rangevalidator1" runat="server" SetFocusOnError="true" ControlToValidate="txtSasiNo" ErrorMessage="Enter number characters only (8 or 17)" ValidationExpression="^\d{8}$|^\d{17}$""></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfvSasiNo" SetFocusOnError="true" ValidationGroup="kaskoTeklifSayfasi" runat="server" Display="Dynamic" ControlToValidate="txtSasiNo" CssClass="zorunlu">Please enter Number.</asp:RequiredFieldValidator>
Вопрос:
Я пытаюсь использовать RangeValidator.
Если txtnumber является нулевым или пустым и если txtnumber не 8 символов или не 17 символов. Только 2 варианта первого варианта - 8 символов, второго варианта - 17 символов.
только текстовый символ может быть как ниже
12345678 // This is 8 characters
12345678901234567 // This is 17 characters
Что добавить в RangeValidator для достижения этой цели?
Благодарю.
3 ответа
Как описано Ondrej Svejdar, вы можете использовать RegularExpressionValidator
, Чтобы быть более конкретным с aspx. Смотрите код ниже:-
ОБНОВЛЕННЫЙ КОД:
Ну вот:-
<asp:TextBox ID="txtnumber" runat="server" Width="250px"></asp:TextBox>
<asp:RegularExpressionValidator Display="Dynamic" ID="regtxt" runat="server" SetFocusOnError="true" ControlToValidate="txtnumber" ErrorMessage="Enter number characters only (8 or 17)"
ValidationExpression="^\d{8}$|^\d{17}$"></asp:RegularExpressionValidator>
Надеюсь, поможет
Не используйте валидатор диапазона - используйте вместо него валидатор регулярных выражений:
<asp:RegularExpressionValidator ValidationExpression="^([0-9]{8})|([0-9]{17})$" ... />
Валидаторы обычно игнорируют пустые поля. Заметное исключение: RequiredFieldValidator. Добавьте это для защиты от пустых полей и оставьте RangeValidator принудительным для определенного диапазона значений.