Русские буквы в регулярном выражении
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Русские буквы в регулярном выражении - 2009-06-30 07:20:05.903333
|
|
|
ncome
Сообщений: 43
Оценки: 0
Присоединился: 2008-09-13 09:22:59.690000
|
Как в регулярное выражение вставить русские буквы php без поддержки русского и шаблон \w* не помогает добавлял АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя тоже не помогло if(isset($_POST['Content'])) { $Content=stripslashes(htmlspecialchars($_POST['Content'])); if(preg_match("/^[a-zA-Z0-9]+$/", $Content)) {Хорошо} else {Плохо} }
|
|
|
RE: Русские буквы в регулярном выражении - 2009-06-30 09:59:29.533333
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Обычно хватает [а-я] с флагом /i Попробуй использовать \w*
|
|
|
RE: Русские буквы в регулярном выражении - 2009-06-30 10:48:41.506666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
А кодировки? $Content и шаблон в одной кодировке?
|
|
|
RE: Русские буквы в регулярном выражении - 2009-07-01 00:37:20.650000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Мысль ещё бродит такая: а как у preg_* с unicode? И не в юникоде ли у тебя файлик? Почему-то мне кажется, что с однобайтовыми кодировками preg_* должны работать правильно не замечая подвоха. Проблемы могут быть разве что с тем, что порядок русских букв в кодировке как правило отличается от алфавитного, то есть [а-я] либо будет работать совсем криво (скажем с koi8-r) или ограниченно криво, ибо 'Ё' не на месте. А вот многобайтовые или мультибайтовые стопудов требуют от preg_* специального подхода к вопросу.
|
|
|
RE: Русские буквы в регулярном выражении - 2009-07-01 08:43:23.566666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
quote:
ORIGINAL: rgo Мысль ещё бродит такая: а как у preg_* с unicode? И не в юникоде ли у тебя файлик? Почему-то мне кажется, что с однобайтовыми кодировками preg_* должны работать правильно не замечая подвоха. Проблемы могут быть разве что с тем, что порядок русских букв в кодировке как правило отличается от алфавитного, то есть [а-я] либо будет работать совсем криво (скажем с koi8-r) или ограниченно криво, ибо 'Ё' не на месте. А вот многобайтовые или мультибайтовые стопудов требуют от preg_* специального подхода к вопросу. Я всегда работаю с UTF-8, проблем не было.
|
|
|
RE: Русские буквы в регулярном выражении - 2009-07-01 09:36:18.830000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: zhuk quote:
ORIGINAL: rgo Мысль ещё бродит такая: а как у preg_* с unicode? И не в юникоде ли у тебя файлик? Почему-то мне кажется, что с однобайтовыми кодировками preg_* должны работать правильно не замечая подвоха. Проблемы могут быть разве что с тем, что порядок русских букв в кодировке как правило отличается от алфавитного, то есть [а-я] либо будет работать совсем криво (скажем с koi8-r) или ограниченно криво, ибо 'Ё' не на месте. А вот многобайтовые или мультибайтовые стопудов требуют от preg_* специального подхода к вопросу. Я всегда работаю с UTF-8, проблем не было. Мои поздравления! В твоей системе, как и в моей, библиотечка перловых регекспов собрана с поддержкой utf8.
|
|
|
RE: Русские буквы в регулярном выражении - 2009-07-01 15:12:18.636666
|
|
|
ncome
Сообщений: 43
Оценки: 0
Присоединился: 2008-09-13 09:22:59.690000
|
Проблема была и с кодировкой тоже суть не в ней банально не поставил пробел между …0-9 АБВГДЕ….. и если слов больше одного ничего не происходило Вот окончательное решение if(isset($_POST['Content'])) {$Content=stripslashes(htmlspecialchars($_POST['Content'])); if(preg_match("/^[a-zA-Z0-9 АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя!?;:)(]+$/", $Content)) {Хорошо ;} else {Плохо ;}}
|
|
|
|
|