Проверка IP с использованием RegularExpressionValidator не работает - PullRequest
0 голосов
/ 16 мая 2011

Я попытался реализовать проверку IP-адреса с помощью Обязательного полевого валидатора, но, похоже, он не сработал при отображении ошибки «Нераспознанная последовательность сброса»

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                            ControlToValidate="txtadapterid" ErrorMessage="Please Enter a Valid IP Address" 
                            Font-Size="Small" 
                            ValidationExpression="^(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)$"></asp:RegularExpressionValidator>

и метод файла кода

   private void checkRejex(string strFindin)
{
    Regex myRegex = new Regex("^(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)$");
    if (myRegex.IsMatch(strFindin))
    {
        lblmsg.Text = "Valid Input";
        lblmsg.ForeColor = Color.Green;
    }
    else
    {
        lblmsg.Text = "Please enter a valid IP Address";
        lblmsg.ForeColor = Color.Red;
    }
}

Ответы [ 2 ]

1 голос
/ 16 мая 2011

Вместо простой строки с обратными слешами, как у вас есть:

new Regex("^(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)$")

вам нужно использовать строку Verbatim, с префиксом @, например:

new Regex(@"^(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)$")

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}} * * * * * * *. * * * * * *. * * * * * * * * * * * * [101] * * * * *.полная информация.

1 голос
/ 16 мая 2011

В строках C # символ обратной косой черты (\) имеет особое значение: это escape-символ. Вам нужно использовать двойную обратную косую черту, чтобы убрать особое значение:

"^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|25[0-5]|2[0-4]\\d)$"

Или используйте дословный строковый литерал, добавив к нему префикс @, где обратный слеш не имеет особого значения:

@"^(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|25[0-5]|2[0-4]\d)$"

В дословных строках необходимо экранировать только двойные кавычки (") (опять же, используя пару ""), поскольку они используются для разделения строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...