Обработка текста

kabachok

Новичок
Обработка текста

У меня такая вот проблема, есть вап чат, для мобильных телефонов, так вот, мне нежно сделоть чтобы ник в чате мог содержать только русские и англиские символы ну и цыфры, все остальные символы не нужны, и еще не нужны вские спец символы типа ©®♥ с ними у мен особая проблема, не знаю как их убирать. зарание спасибо.
 

kabachok

Новичок
ну мне главное теперь смысл понятен, далше сам разберуся) спасибо)

-~{}~ 18.06.05 16:38:

if(preg_match("/^[a-zA-Zа-яА-Я][a-zA-Zа-яА-Я0-9]{0,9}$/",$nick) || empty($nick))
делаю в общем такую проверку, типа первый символ обязательно буква, остальные какие угодно но не больше 10, вто тока как спец сымволы ♥ резать не знаю.
 

itprog

Cruftsman
kabachok
Регулярное выражение можно немного упростить, добавив модификатор регистронезависимости.
if(preg_match("/^[a-zа-я][a-zа-я0-9]{0,9}$/i",$nick) || empty($nick))
Ты понимаешь что вообще делает этот код?
 

Frol

Новичок
у тебя выходит: "если ник содержит только разрешенные символы или пуст, то..."
 

DiMA

php.spb.ru
Команда форума
> Регулярное выражение можно немного упростить

афигенно упростил .)

preg_match("/^(?!\d)[a-zа-я0-9]{1,10}$/i",

> у тебя выходит: "если ник содержит только разрешенные символы или пуст, то..."

или "0"
 

nikit87

Новичок
у тебя наверняка возникнут траблы с кодировкой потом. не забудь потом под utf-8 настроить. потому что регулярка работать будет но левые символы проходить будут
 

DiMA

php.spb.ru
Команда форума
> но левые символы проходить будут

Чушь. Пройдут ровно те, что указаны в [a-zа-я0-9] и ровно столько байт, сколько указано в {1,10}. Единственно, если php на линухе без локали cp1251, то с "а-я" будет проблема.

Для работы с юникодом в регах надо что-то включить. Если входной текст - юникод. Но это всего лишь *возможность* и к обсуждаемому отношения не имеет.
 

nikit87

Новичок
если он сохранит файл в win то слово "Лучший" будет как ЛучС?РёР№. тоже произойдет и с символами "а" и "я" .

>Для работы с юникодом в регах надо что-то включить. Если входной текст - юникод. Но это всего лишь *возможность* и к обсуждаемому отношения не имеет.

как раз к обсуждаемому вопросу эта возможность и имеет отношение. перечитай вопрос автора топика
 

itprog

Cruftsman
DiMA
афигенно упростил .)
Что, слова "немного" не заметно?)
Кстати, тут еще можно поспорить какой вариант лучше, /^(?!\d)[a-zа-я0-9]{1,10}$/i не сразу понятен. Скорее всего это уже не упростил, а усложнил.
 

SiMM

Новичок
> если он сохранит файл в win то слово "Лучший" будет как ЛучС?РёР№. тоже произойдет и с символами "а" и "я" .

Мужик, давай ты будешь заниматься своими проблемами и не пороть чушь? Договорились?
 

nikit87

Новичок
SiMM
Давай. А ты взамен тоже. Договарились?
//////
насчет файла это я неправильно высказался, так сказать... блин даж не знаю как правильно сформулировать то....
кароче фишка в том что эта регулярка пахать не станет на утф-8. сам пробовал. приходилось сначала конвертить в вин а потом регулярка эта тока заработала
 

SiMM

Новичок
> сохранит файл в win
> регулярка пахать не станет на утф-8
И какая связь между этими двумя фразами?
 

nikit87

Новичок
Про файл это я глюканул не спорю.. писал асоциативно не задумываясь. Хотел сказать что если открыть в кодировке windows 1251 то что было написано в утф-8 получиться что-то типа ЛучС?РёР№ , поэтому нужно регулярками это чудо обрабатывать или конвертить в вин iconv например и её регулярками обрабатывать, что проще
 
Сверху