Запрет символов в никах и цифровых ников, Запрет символов в никах и цифровых ников |
Здравствуйте, гость ( Вход | Регистрация )
Запрет символов в никах и цифровых ников, Запрет символов в никах и цифровых ников |
17.2.2010, 0:23
Сообщение
#21
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
В общем я маленько въехал, но это всё равно для меня очень сложно.
Я понял, что там где можно обойтись без этих скобок лучше их опускать. Но в моём случае они нужны, потому что захват не являеться постояным, а заключён в переменную. Так? Добавил скобки всё работает! Скрипт можно перести в готовые... Disallow.lua ( 560 байт ) Кол-во скачиваний: 48 Функции скрипта -- Запрет символов в никах -- Заперет ников состоящих только из цифр |
|
|
17.2.2010, 0:29
Сообщение
#22
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код if tUser.sNick:find(""..sbansymbol.."") then это очень дурная привычка так писать!!! Вы даже не представляете насколько это вредно. Нужно всеми способами избавляться от лишних конкатенаций, а тут наоборот делают. Почему не написать так: Код if tUser.sNick:find(sbansymbol) then зачем делать лишнюю конкатенацию? Эту привычку надо искоренять! Не пойму, кто вас научил делать эту лишнюю конкатенацию? Ведь никто из скриптописателей данного форума так не пишет.
|
|
|
17.2.2010, 0:33
Сообщение
#23
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Простите я не знал
Теперь знаю Спасибо |
|
|
21.2.2010, 23:34
Сообщение
#24
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Кто-нибудь может подсказать, в чём прикол?
Следующий код запрещает ники состоящие только из цифр Код if tUser.sNick:find"^%d+$" then Core.SendToUser(tUser,"*** Ники состоящие только из цифр запрещены!") Core.Disconnect(tUser) end Логически рассуждая можно запретить ники состоящие например из символа - Следующим образом Код if tUser.sNick:find"^%-$" then Core.SendToUser(tUser,"*** Ники состоящие только из символов запрещены!") Core.Disconnect(tUser) end Символ - заэкранирован, и всё равно не работает Почему? |
|
|
21.2.2010, 23:49
Сообщение
#25
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Потому что такое регулярное выражение ловит только один символ -, то есть ник, состоящий только из одного этого символа.
Нужно чтобы ловился один и более, для этого нужно поставить плюсик: Код if tUser.sNick:find"^%-+$" then Ведь если бы мы в предыдущем примере не поставили плюсик: Код if tUser.sNick:find"^%d$" then то ловилась бы тоже одна цифра, а не любое число.
|
|
|
22.2.2010, 0:04
Сообщение
#26
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Не могу удержаться и спросить ещё кое что
Таким образом, что бы запретить ники состоящие только из - или . или z Ну вообщем не важно какие это будут символы Приходиться делать так: Раскрывающийся текст Код if tUser.sNick:find"^%-+$" then Core.SendToUser(tUser,"*** Ники состоящие только из символов запрещены!") Core.Disconnect(tUser) end if tUser.sNick:find"^z+$" then Core.SendToUser(tUser,"*** Ники состоящие только из одной и той же буквы запрещены!") Core.Disconnect(tUser) end Мне интересно узнать... Можно ли как то упростить код? Чтобы просто добавлять символы в Код tUser.sNick:find"^z+$"
|
|
|
22.2.2010, 0:07
Сообщение
#27
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
По-моему так:
Код tUser.sNick:find"^([%-z])%1*$"
|
|
|
22.2.2010, 0:11
Сообщение
#28
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Нет не фурычит
|
|
|
22.2.2010, 12:21
Сообщение
#29
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Регулярные выражения в Lua не столь разнообразны, как регулярные выражения пёрла. Поэтому не всё возможно сделать
|
|
|
22.2.2010, 17:17
Сообщение
#30
|
|
Активный участник Группа: Заблокированные Сообщений: 87 Регистрация: 16.10.2008 Пользователь №: 805 Спасибо сказали: 35 раз |
Код if tUser.sNick:match("^[%-]+$") or tUser.sNick:match("^[%.]+$") or tUser.sNick:match("^[z]+$") then
|
|
|
22.2.2010, 17:58
Сообщение
#31
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Тогда уж без квадратных скобок и с использованием find, а не match
Код local sNick = tUser.sNick
if sNick:find"^%-+$" or sNick:find"^%.+$" or sNick:find"^z+$" then |
|
|
Похожие темы
|
Сейчас: 27.11.2024, 3:46 |