Ответы:
Всё верно.
Вот готовая функция [1] там же есть обсуждение этого процесса...
Простое решение — допускать в нике символы только из одного набора, т.е. ты чтобы пользователи могли создать и английские ники и русские, но не смешивая алфавиты в одном нике.
Угу. Могу добавить что если база хранит записи в юникоде, такая проверка поможет только отчасти.
Проверять регулярным выражением на предмет наличия в нике букв только одного алфавита:
[А-Яа-я]{3,}|[A-Za-z]{3,}
+ Если есть желание - можно разрешить цифры и прочие крокозябли.
дык, в функции что выше я давал есть список пар визуально похожих букв английских и русских
'eyuopaghklxcbnm03','еуиораднк1хсвпмоз'
перевести имя в один формат и по нему сравнивать...
А показывать естественно, то что человек реально ввёл.
То есть хранить два поля: 1 реальное имя, 2 хеш имени для сравнения. и не допускать регистрацию с таким же хешем.
Ок, какую проблему требуется решить? Проблему путаницы ников, когда они похожи по написанию. Так?
Предположим твой алгоритм будет 100% определять похож ли создаваемый ник на уже существующий и что тогда? Ты не разрешишь его создавать только по этой причине? Представляю глаза юреза, когда ты ему об этом сообщишь.
А если не запретишь смешивание наборов, то вариантов может быть очень много (например ник "хромосом" — шесть взаимозаменяемых символов плюс комбинации).
Про юникод - это я к тому, что кроме русского существуют и другие языки и кодировки. И там тоже полно символов, совпадающих с английскими или русскими. И если база юникодовая, то эти символы будут без проблем сохраняться, обходя проверку, заточеную на русские символы.
ну ведь куча еще charset-ов существует, они выглядят так же как латинские или русские, а код другой!!!
я считаю, надо завести индивидуализацию ников и все...
это не так трудно, но стоит приличного проекта
Лично я бы не заморачивался этой проблемой.
пусть пишут что угодно и как угодно :)
канадос, кто первый застолбил "хромосом" тот и пользуется. глаза остальных никого не волнуют!
Просто писать ник занят! не объясняя внутреннюю логику приложения. Пусть развивают фантазию.
wizard, в таком случае я не понял в чём заключается проблема.
Возможно нужно описать её подробнее...
17 лет назад