1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Запрет регистрации ника только заглавными буквами

Тема в разделе "Основные вопросы по XenForo", создана пользователем Ice, 15.09.2011.

Загрузка
  1. Ice

    Ice Местный

    Регистрация:
    13.10.10
    Сообщения:
    207
    Симпатии:
    108
    Версия XF:
    1.1.2
    Что-то запарили меня на моем форуме дебильные ники регистрируемых в последнее время - пишут длинные предложения и причем исключительно заглавными буквами...

    Ну, "Ограничение длины имени пользователя" (admin.php?options/list/usersAndRegistration) до 10 символов-то я ввел...

    А вот как сделать чтобы было запрещено делать их все заглавными?
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Боюсь, что никак. Если бы нужно запретить все заглавные, то без проблем. Проверить на использование исключительно заглавных, также, как и исключительно цифр или других знаков, регэкспами, наверное, не возможно.
     
  3. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Что, реально регулярным выражением нельзя? Я думал с ними можно хоть что угодно сделать...
     
  4. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Теоритически — можно все. На практике это может быть настолько громоздким, что проще будет сделать какой-нибудь хак (я говорю не про этот конкретный случай).
     
  5. Бboris

    Бboris Тролль

    Регистрация:
    20.08.11
    Сообщения:
    205
    Симпатии:
    33
    Хак подключающий регулярку? :p
     
  6. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Простите, но я мыслю несколько иными категориями. Или вы текст в скобках не читаете?
     
  7. Бboris

    Бboris Тролль

    Регистрация:
    20.08.11
    Сообщения:
    205
    Симпатии:
    33
    Теоретическими? :thumbsup:
     
  8. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Ну как-то так ^[a-zа-я0-9]+$
    Только а-я не уверен что так можно писать.
     
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Я же оговорил сразу, что при полном исключении заглавных проблем нет, но регулярным выражением не просто проверить, что именно все символы заглавные.
    Конечно, можно регуляркой учесть сразу все случаи, но в таком случае такое выражение будет ну очень громоздким и длинным. Когда потребуется учесть случаи для нескольких символов, это одно. А, когда нужно символов 20 учитывать?
    Так можно. Но в данном случае будет пропускать ники только без заглавных символов. Любой заглавный символ в нике будет не допустим.

    После некоторых поисков вроде нашел нужное выражение. В принципе можно вроде как чем-то таким проверять необходимость включения букв в нижнем регистре:
    Код:
    (?!^[a-zа-яё]*$)(?!^[A-ZА-ЯЁ0-9]*$)^([a-zA-Zа-яА-ЯёЁ0-9]{6,15})$
    Это выражение не содержит спецсимволы типа подчеркиваний, тире и прочего, можно добавить при желании. Также проверяется количество символов. Должно быть не менее 6 и не более 15. Если будете пробовать модифицировать, то обратите внимание, что в первой и во второй части выражения содержатся те символы, которые не допускаются без добавления других, а в третьей - перечисляются все допустимые. То есть, только нижний регистр и только верхних регистр не допускаются. Для валидности ник должен содержать хотя бы одну цифру или одновременно и нижний и верхний регистр.
    Например, не допустимые ники:
    • МОЙНИК
    • 12345
    • мойник
    • МОЙНИК1
    А вот допустимые ники:
    • МойНик
    • мойник1
    • 12345О (О - буква)

    P.S. Для проверки регулярных выражений, а также для поиска уже готовых, рекомендую пользоваться этим сервисом.
     
    TAIFUN, Romchik®, CyberAP и ещё 1-му нравится это.
  10. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Тут еще засада — у форума при проверке используется модификатор, делающий проверку регистронезависимой. Так что вся эта регулярка сводится на нет.
     
  11. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А можно поподробнее. Где используется модификатор?
     
  12. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    XenForo_DataWriter_User в районе строки 493

    PHP:
    if (!preg_match('#' $matchRegex '#i'$username))
     
  13. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    М-да... По идее это баг.
     
  14. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Я им уже в личку отписал с предложением заменить i на u :)
     
    Romchik®, Yoskaldyr и infis нравится это.

Поделиться этой страницей