Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Проверка например ника при регистрации...


Автор: Asan 24.6.2003, 08:05
Доброе время суток всем!

У меня такая проблема: При регистрации в чате необходимо проверять ник на английские и русские символы! Если при совмещении ру. и англ. букв есть выдать ошибку! Т.е. ники ак бы в чате должны быть либо тока русскими буквами либо тока английскими!

Помогите, посоветуйте!

Автор: acp 24.6.2003, 17:21

Не люблю в качестве ответов писать код и мог бы ответить "смотрите доку по регулярным выражениям" smile.gif
Но тут настолько просто, что можно в принципе и код написать (а может у меня просто хорошее настроение).


Код

if ((m/[A-Za-z]/ && !m/[а..яА..Я]/) ||
 !m/[A-Za-z]/ && m/[а..яА..Я]/)
{
..
}



Вроде будет работать.

Автор: acp 24.6.2003, 23:33

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


Код

if (m/[A-Za-z]/ ^ m/[а..яА..Я]/)
{
..
}



Здесь применяется xor, но он плох тем, что он не логический, а побитовый. Но ведь представление истины и лжи может измениться, и это работать не будет.

Автор: Asan 25.6.2003, 07:51
Спасибо! Будем пробывать! withstupid.gif

Автор: acp 25.6.2003, 17:12

Только надеюсь вы понимаете, что, когда я писал а..я, я имел в виду, что здесь надо указывать все буквы алфавита smile.gif

А работать будет, т.к. первый пример прост по определению, а последний пример я пробовал.

Автор: kvk 25.6.2003, 18:22
Чтобы не указывать все А-Я я пользуюсь [Ю-Ъю-ъ]

Автор: acp 26.6.2003, 01:04
Код
[Ю-Ъю-ъ]



Здорово. И такое действительно работает по все ОС?

Автор: Asan 27.6.2003, 07:16
Ребят я сделал вот так у меня всё хорошо работает smile.gif

if ((($query{'name'} =~ /[А-Яа-я]/) && ($query{'name'} =~ /[A-Za-z]/)) || ($query{'name'} =~ /[\#\";\/:\\\?\*<>\| \'\-\+,.&\=\~\`\$\№\%\^(){}\[\]]/) or not $query{'name'}) то выдаем ошибку иначе всё ОК

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)