Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Регулярные выржаения. / 24 сообщений из 24, страница 1 из 1
10.07.2014, 14:10
    #38693200
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Всем привет. Вот код.

if (!Regex.IsMatch("1", @".{2,3}")) { ErrorLBL.Text = "Длинна пароля меншье 2-х символов! "; ErrorRes = "NoCorrect"; } else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };


Но не работает. Пропускает.
...
Рейтинг: 0 / 0
10.07.2014, 14:15
    #38693212
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777, какой смысл для проверки длины регулярные выражения использовать?
...
Рейтинг: 0 / 0
10.07.2014, 14:18
    #38693221
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Согласен. Но я начал изучать данную тему.

Вот первый код.Он работает.

if (Regex.IsMatch(UserName, @"[.:~`#$%^&*()_+ /|\:<>,.?'[={}]")) { ErrorLBL.Text = "Имя пользователя не может содержать следующие символы: . : ~ ` # $ % ^ & * () _ + / | : < > , . ? ' = { } [ ] и конечно же пробел !"; ErrorRes = "NoCorrect"; }
else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };
return ErrorRes;


А вот этот нет.
if (!Regex.IsMatch("1", @".{2,3}")) { ErrorLBL.Text = "Длинна пароля меншье 2-х символов! "; ErrorRes = "NoCorrect"; } else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };
...
Рейтинг: 0 / 0
10.07.2014, 14:23
    #38693227
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777, я Вас в соседней теме просил давать больше вводных.

Что значит не работает? Всё прекрасно работает!

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
using System;
using System.Text.RegularExpressions;

namespace RegExpApplication
{
    class Program
    {
        static void Main()
        {
            var text = "";

            if (!Regex.IsMatch("1", @".{2,3}"))
            {
                text = "Длинна пароля меншье 2-х символов!";
            }

            Console.WriteLine(text);
            Console.ReadKey();
        }
    }
}
...
Рейтинг: 0 / 0
10.07.2014, 14:24
    #38693231
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
...
Рейтинг: 0 / 0
10.07.2014, 14:26
    #38693235
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777Согласен. Но я начал изучать данную тему.

Вот первый код.Он работает.

if (Regex.IsMatch(UserName, @"[.:~`#$%^&*()_+ /|\:<>,.?'[={}]")) { ErrorLBL.Text = "Имя пользователя не может содержать следующие символы: . : ~ ` # $ % ^ & * () _ + / | : < > , . ? ' = { } [ ] и конечно же пробел !"; ErrorRes = "NoCorrect"; }
else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };
return ErrorRes;


А вот этот нет.
if (!Regex.IsMatch("1", @".{2,3}")) { ErrorLBL.Text = "Длинна пароля меншье 2-х символов! "; ErrorRes = "NoCorrect"; } else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };В первом куске кода используется переменная UserName, а не литерал. Может и в последнем куске кода вместо "1" должно быть что-то вроде UserPassword?
...
Рейтинг: 0 / 0
10.07.2014, 14:51
    #38693284
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Я не могу понять.

Вот полный код

protected string CheckPaswFormat(string PswTBX,string PswTBX2)
{
string ErrorRes = "";
//----Длинна пароля-------------------------------
if (!Regex.IsMatch("1", @".{2,3}")) { ErrorLBL.Text = "Длинна пароля меншье 6 символов! "; ErrorRes = "NoCorrect"; } else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };
//----Проверка на совпадение----------------------
if (PswTBX != PswTBX2) { ErrorLBL.Text = "Пароли не совпадают !"; ErrorRes = "NoCorrect"; } else { ErrorLBL.Text = ""; ErrorRes = "Correct"; };

return ErrorRes;
}

Не работает.
...
Рейтинг: 0 / 0
10.07.2014, 15:03
    #38693304
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Так?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
protected string CheckPassword(string password, string passwordConfirmation)
{
    ErrorLBL.Text = "";

    // Длина пароля должна быть минимум 6 символов
    if (!Regex.IsMatch(password, @".{6,}"))
    {
        ErrorLBL.Text = "Длина пароля меньше 6-и символов!";
        return "NoCorrect";
    }

    // Введённый пароль должен быть подтверждён
    if (password != passwordConfirmation)
    {
        ErrorLBL.Text = "Пароли не совпадают!";
        return "NoCorrect";
    }

    return "Correct";
}
...
Рейтинг: 0 / 0
10.07.2014, 15:04
    #38693307
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777, когда научишься код форматировать и толком объяснять что делаешь и что не работает?
...
Рейтинг: 0 / 0
10.07.2014, 15:08
    #38693318
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Ну Айм сорри. Немного есть такое. Я блин допустил логическую ошибку.
Дело в том что если даже проверка длинны возвращает NoCorrect, то его проверка на совпдаение исправляет )
Вообщем автор дебил.

Всем спасибо.
...
Рейтинг: 0 / 0
10.07.2014, 15:10
    #38693322
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Может прервать break -ом ?
...
Рейтинг: 0 / 0
10.07.2014, 15:12
    #38693329
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777, вместо строк используй enum:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public enum ValidationResult
{
    Failed,
    Success
}

protected ValidationResult CheckPassword(string password, string passwordConfirmation)
{
    ErrorLBL.Text = "";

    // Длина пароля должна быть минимум 6 символов
    if (!Regex.IsMatch(password, @".{6,}"))
    {
        ErrorLBL.Text = "Длина пароля меньше 6-и символов!";
        return ValidationResult.Failed;
    }

    // Введённый пароль должен быть подтверждён
    if (password != passwordConfirmation)
    {
        ErrorLBL.Text = "Пароли не совпадают!";
        return ValidationResult.Failed;
    }

    return ValidationResult.Success;
}
...
Рейтинг: 0 / 0
10.07.2014, 15:15
    #38693337
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777Может прервать break -ом ?Боюсь у тебя это не получится.

Хотя...

Если ты все проверки засунешь в нужном порядке в некий массив validationRules и организуешь цикл по нему, то можешь и break использовать
...
Рейтинг: 0 / 0
10.07.2014, 15:34
    #38693395
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Все таки у тебя красивые коды )

А что если без массива ? Брейк в наутре не помог.
...
Рейтинг: 0 / 0
10.07.2014, 15:45
    #38693427
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Скай ругает что что не явное преобразование в string невозможно. Я про ValidationResult.Success
...
Рейтинг: 0 / 0
10.07.2014, 15:58
    #38693456
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777Все таки у тебя красивые коды )

А что если без массива ? Брейк в наутре не помог.Без массива return.
...
Рейтинг: 0 / 0
10.07.2014, 15:59
    #38693469
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777Скай ругает что что не явное преобразование в string невозможно. Я про ValidationResult.Success1. Не сравнивай со строкой;
2. Покажи код.
...
Рейтинг: 0 / 0
11.07.2014, 06:32
    #38693943
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
public enum ValidationResult
{
Failed,
Success
}

protected string CheckUserNameFormat(string UserName)
{
string ErrorRes = "";

if (Regex.IsMatch(UserName, @"[.:~`#$%^&*()_+ /|\:<>,.?'[={}]")) { ErrorLBL.Text = "Имя пользователя не может содержать следующие символы: . : ~ ` # $ % ^ & * () _ + / | : < > , . ? ' = { } [ ] и конечно же пробел !"; ErrorRes = "NoCorrect"; return ValidationResult.Failed }
else { ErrorLBL.Text = ""; ErrorRes = "Correct"; return ValidationResult.Success};
ValidationResult.Success;
}
...
Рейтинг: 0 / 0
11.07.2014, 06:52
    #38693948
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
antihacker777, это называется "Гляжу в книгу - вижу фигу".

Мой пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public enum ValidationResult
{
    Failed,
    Success
}

protected ValidationResult CheckPassword(string password, string passwordConfirmation)
{
    ErrorLBL.Text = "";

    // Длина пароля должна быть минимум 6 символов
    if (!Regex.IsMatch(password, @".{6,}"))
    {
        ErrorLBL.Text = "Длина пароля меньше 6-и символов!";
        return ValidationResult.Failed;
    }

    // Введённый пароль должен быть подтверждён
    if (password != passwordConfirmation)
    {
        ErrorLBL.Text = "Пароли не совпадают!";
        return ValidationResult.Failed;
    }

    return ValidationResult.Success;
}


твой код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
protected string CheckUserNameFormat(string UserName)
{
string ErrorRes = "";

if (Regex.IsMatch(UserName, @"[.:~`#$%^&*()_+ /|\:<>,.?'[={}]")) { ErrorLBL.Text = "Имя пользователя не может содержать следующие символы: . : ~ ` # $ % ^ & * () _ + / | : < > , . ? ' = { } [ ] и конечно же пробел !"; ErrorRes = "NoCorrect"; return ValidationResult.Failed }
else { ErrorLBL.Text = ""; ErrorRes = "Correct"; return ValidationResult.Success};
ValidationResult.Success;
}


1. Тип возвращаемого методом значения должен быть ValidationResult, а не string;
2. Локальная переменная string ErrorRes не нужна;
3. else не нужен;
4. В конце метода должен быть return...

Ну и отформатируй уже наконец свой код.
...
Рейтинг: 0 / 0
11.07.2014, 07:47
    #38693955
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
...

символ юаня значит можно в имени пользователя, а невинное подчёркивание -- нет.
моя воляецца поцтолом.
...
Рейтинг: 0 / 0
11.07.2014, 07:51
    #38693956
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Грех профиям смеятся над чайником )

Код работает. Ловлю так.

автор //-----Проверяем формат имя пользователя-------------
if (CheckUserNameFormat(UserNameTBX.Text) == ValidationResult.Failed) { return; };
...
Рейтинг: 0 / 0
11.07.2014, 09:10
    #38693983
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
hVostt...

символ юаня значит можно в имени пользователя, а невинное подчёркивание -- нет.
моя воляецца поцтолом. Ну какой шаблон регулярки ТС нашёл в инете, тот и использует.
Предложи свой, фигли ржать
...
Рейтинг: 0 / 0
11.07.2014, 09:14
    #38693989
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
skyANAПредложи свой, фигли ржать

Код: c#
1.
Имя пользователя не может содержать следующие символы: . : 1 d Ы ц Y o Щ и конечно же ?
...
Рейтинг: 0 / 0
11.07.2014, 13:13
    #38694264
antihacker777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выржаения.
Нет шаблон я создал сам.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Регулярные выржаения. / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]