как использовать RegularExpressionValidator в текстовом поле

У меня есть текстовое поле, которое мне нужно проверить, чтобы пользователь мог ввести до четырех символов, и они могут быть буквенно-цифровыми. Я использую VS2003, .NET 1.1.

Пожалуйста, дайте мне знать, какое выражение я должен использовать для проверки этого условия, любая помощь будет отличной. Спасибо!

Пробовал так:

<asp:TextBox id="wtxtTPP" tabIndex="2" runat="server" CssClass="text" Width="144px" MaxLength="4" />
<asp:RegularExpressionValidator id="RegularExpressionValidator1" style="z-index: 101; left: 208px; position: absolute; TOP: 16px" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="^([\S\s]{0,4})$" ControlToValidate="wtxtTPP" />
<input style="z-index: 102; left: 88px; position: absolute; top: 72px" type="submit" value="Submit" id="Submit1" name="Submit1" runat="server">

person happysmile    schedule 20.01.2011    source источник
comment
Почему вы используете .NET 1.1? Это устарело! Используйте как минимум .NET 2.0. Использовать можно попробовать бесплатную Visual Studio 2010 Express (которая поддерживает и 3.5 и 4.0). Нет причин оставаться на .NET 1.1.   -  person abatishchev    schedule 21.01.2011
comment
aspdotnetkhan.com/RegularExpressionValidator.aspx   -  person Firoz Khan    schedule 13.05.2018


Ответы (3)


Как вы сказали, используйте валидатор регулярных выражений и установите выражение примерно так:

^([\S\s]{0,4})$

Замените 4 на желаемую максимальную длину.

Обновлять:

<asp:TextBox id="wtxtTPP" Runat="server" />

<asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" 
        ErrorMessage="RegularExpressionValidator" 
        ValidationExpression="^([\S\s]{0,4})$" 
        ControlToValidate="wtxtTPP" />

<asp:Button ID="Button1" runat="server" Text="Button" />

Это прекрасно работает для меня. Я заменил вашу кнопку отправки на обычную кнопку asp.net и упростил все ненужные вещи для примера.
В общем, если у вас есть только однострочное текстовое поле, вы можете просто ограничить длину текста с помощью MaxLength="4", как вы это сделали. . Валидатор не нужен.

person Remy    schedule 20.01.2011
comment
привет, Реми, я пытался так: - person happysmile; 20.01.2011
comment
даже если ввести в текстовое поле как 12, отображается сообщение об ошибке - person happysmile; 20.01.2011

Как сказал @Remy.

Кроме того, часть {0,4} регулярного выражения означает, что длина должна быть от нуля до максимум четырех, что позволяет использовать нулевую длину, т. е. нет ввода. Не забудьте использовать RequiredFieldValidator, если число является обязательным, или замените ноль минимальным количеством цифр.

person indra    schedule 20.01.2011
comment
На самом деле, RegularExpressionValidator всегда передает пустой ввод, как и все валидаторы, кроме RequiredFieldValidator. - person Reid Rankin; 18.07.2013

Очень небольшое изменение в ValidationExpression, кажется, делает разницу между работой только иногда и надежной работой. Следующее работало для меня в разработке, но не в производстве:

<asp:RegularExpressionValidator Display = "Dynamic" ControlToValidate = "tbCarePlan" ID="revCarePlan" ValidationExpression = "^(.{0,4000})$" runat="server" ErrorMessage="Max 4000 characters allowed." />

Замена ValidationExpression выше на "[\s\S]{0,4000}" теперь работает надежно. Опустите ^ и $ — RegularExpressionValidator не требует этого.

person Antony D    schedule 03.07.2015