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

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

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

 

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

вид форума:
Линейный форум Структурный форум

тема: подскажите правильное решение
 
 автор: Slo_Nik   (30.03.2009 в 00:55)   письмо автору
 
 

подскажите, пожалуйста, правильное решение.
есть данные из адресной строки, передача методом GET, цифры и слова, передаются id и название каталога.
вот сделал такое выражение, но работает криво.

if(!preg_match("#^([0-9]{1,2}|([а-я ][\'\"])+?)$#i",$arr)){
        echo "<html><head><meta http-equiv='refresh' content='0; url=../../include/warning.php'></head></html>";
        exit();
        }

получается, что передаётся id каталога и его название(кирилицей).
я только коснулся регулярных, путаюсь страшно.
если в этом выражении убрать [\'\"], то всё работает, если оставить - перекидывает на указаную страницу, даже если данные введены верно.
как подправить выражение?

  Ответить  
 
 автор: AcidTrash   (30.03.2009 в 21:31)   письмо автору
 
   для: Slo_Nik   (30.03.2009 в 00:55)
 

есть данные из адресной строки, передача методом GET,цифры и слова, передаются id и название каталога.
Странное конечно выражение и или или, но все же:
if(!preg_match("#^([0-9]{1,2}|([а-я '\"])+)$#i",$arr)){  


UPD Stop Вам нужны кавычки или нет?
(Очень интересно, где в адресной строке встречаются кавычки?)

Если нет то:
if(!preg_match("#^([0-9]{1,2}|([а-я])+)$#i",$arr)){ 

  Ответить  
 
 автор: Slo_Nik   (31.03.2009 в 02:08)   письмо автору
 
   для: AcidTrash   (30.03.2009 в 21:31)
 

кавычки и аппострофы не нужны, тут я прогнал маленько, надо было ещё [^'\"] добавить, но всё моя невнимательность....
как я понял из прочитаного по регулярным, то если надо запретить использование каких то символо, то надо перед ними поставить ^, во втором Вашем примере ни где явно не запрещается использования ' ".
Можно ли написать так
([а-я ^'\"])+?
и возник второй вопрос по этому же выражению
i указывает на то, что данные обрабатываются без учёта регистра, но пришлось дописывать [a-zA-Zа-яА-я] несмотря на то что указан был модификатор i
почему не работает модификатор?

  Ответить  
Rambler's Top100
вверх

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