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

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

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

 

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

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

тема: Обработка кавычки - "
 
 автор: alonecat   (21.08.2007 в 13:29)   письмо автору
 
 

Регулярное выражение проверяет данные приходящие из поля формы.
Нужно разрешить русские и латинские буквы, цифры, символы .,-""
Проблема возникает именно с кавычкой


if(!preg_match("/^([0-9a-zа-я_.,-\s])+$/i", 'test 1111 тест.,-')) //так работает
print "error"; 
else
print "ok";



Мне нужно, пропускать еще и кавычку причем желательно в виде \" который она имеет после addslashes

Можно ли как то включить кавычку в [0-9a-zа-я_.,-\s] на \" и просто " ругается, может есть какой то символьный класс для этого

   
 
 автор: cheops   (22.08.2007 в 00:48)   письмо автору
 
   для: alonecat   (21.08.2007 в 13:29)
 

Обычная кавычка должна быть экранирована
<?php
  
if(!preg_match("/^([0-9a-zа-я_.,-\s\"])+$/i"'test 1111 тест.,-"')) //так работает 
    
print "error";  
  else 
    print 
"ok";
?>

Если вам требуется ещё и обратный слеш добавить, то регулярное выражение будет выглядеть следующим образом (под Windows)
<?php
  
if(!preg_match("/^([0-9a-zа-я_.,-\s\"\\\])+$/i"'test 1111 тест.,-\"')) //так работает 
    
print "error";  
  else 
    print 
"ok";
?>

   
 
 автор: alonecat   (22.08.2007 в 10:56)   письмо автору
 
   для: cheops   (22.08.2007 в 00:48)
 

Спасибо!
Сделал все выражение не в двойных, а в одинарных кавычках, теперь работает так


<?
$str
='nmn,,m_hkhjk ggyhjghcd99090 \"ehbfgkrj\"';
if(!
preg_match('/^([0-9a-zа-я_.,-\s\!"\\\])+$/i'$str))     
{
 print 
$time."недопустимый символ";
}
?>

   
Rambler's Top100
вверх

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