Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Только русские или только английские буквы

Сообщения:  [1-10]   [11-11] 

 
 автор: cheops   (07.02.2008 в 13:15)   письмо автору
 
   для: Freddie_X   (06.02.2008 в 18:15)
 

Под новые вопросы лучше заводить новые темы.

   
 
 автор: Freddie_X   (06.02.2008 в 18:15)   письмо автору
 
   для: Freddie_X   (03.02.2008 в 17:21)
 

Появился вопрос! А если я данные отправляю через форму? Как тогда записать urlencode в форме?

   
 
 автор: Freddie_X   (03.02.2008 в 17:21)   письмо автору
 
   для: Faraon   (01.02.2008 в 21:25)
 

Спасибо! Всё работает!

   
 
 автор: Faraon   (01.02.2008 в 21:25)   письмо автору
 
   для: Freddie_X   (01.02.2008 в 11:30)
 

По Вашему постановлению вопроса, Вам всего лишь надо проверить соответсвует ли строка(входящая переменная) условию либо только английские буковки, циферки и символы перечисленные Вами, либо то же самое только с русскими буковками.

>Проверил, что русский язык не работает, если переменную брать из GET
С передающего скрипта используйте функцию urlencode(),
с принимающего urldecode()

   
 
 автор: Freddie_X   (01.02.2008 в 11:30)   письмо автору
 
   для: Faraon   (01.02.2008 в 09:42)
 

Ну я вычитал, что если делать группирующие скобки, то если не хочу их запоминать (чтобы потом использовать через \1, \2, \3 и .т.д.), надо ставить эти 2 символа.
====
Проверил, что русский язык не работает, если переменную брать из GET, а если прописывать её прямо в коде, всё работает. Как можно исправить?

   
 
 автор: Faraon   (01.02.2008 в 09:42)   письмо автору
 
   для: Freddie_X   (01.02.2008 в 00:47)
 

preg_match("/^(([a-z0-9_\(\)\s]+)|([а-яё0-9_\(\)\s]+))$/is",$text)

Насчет прбелов не заметил, что они вам нужны. Добавьте их
>?:
Зачем эта конструкция здесь нужна?

   
 
 автор: Freddie_X   (01.02.2008 в 00:47)   письмо автору
 
   для: Faraon   (31.01.2008 в 23:10)
 

У меня вопрос, а почему вы убрали символы пробелов "\s" и "?:" в начале скобок? Ведь мне не надо их запоминать!

И почему не работает русский язык в регулярных выражениях?
Пишу такое перед скриптом - 0 эмоций...
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

   
 
 автор: Faraon   (31.01.2008 в 23:10)   письмо автору
 
   для: Freddie_X   (31.01.2008 в 23:01)
 

preg_match("/^(([a-z0-9_()]+)|([а-я0-9_()]+))$/is",$text)

   
 
 автор: Freddie_X   (31.01.2008 в 23:01)   письмо автору
 
   для: Faraon   (31.01.2008 в 22:16)
 

Ну вот например:
<?php if(preg_match("/^(?:[a-zA-Z0-9_()\s]+)|(?:[а-яА-Я0-9_()\s]+)$/",$text)) echo "Походит!";
else echo 
"Не подходит!"?>

Если $text = "abc" или "абв" и т.д., то выводить "Подходит!"
Если $text = "абвabc" или "abcабв" - выводить "Не подходит!"
Т.е. допускаются симолы пробела, скобок, подчёркивания, цифр и букв. Но есть условие, что буквы должны быть либо только русскими, либо только латинскими, а в перемешку нельзя.

   
 
 автор: Faraon   (31.01.2008 в 22:16)   письмо автору
 
   для: Freddie_X   (31.01.2008 в 21:26)
 

Так, толком не понятно, что нужно в итоге?

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования