[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка регулярным выражением и вывод
dager12
Есть не обязательные для заполнения поля и их нужно проверить и обрезать ненужное,а то что осталось отправить обработчику.Например Город - */.:Москва%№" и оставить только Москва.Как такое сделать?С обязательными полями проще,там я под полем писал как нужно заполнять и если что появлялась ошибка,но как сделать что бы проверилось,потом убралось ненужное и отправилось то,что осталось,я не могу понять.



Спустя 2 минуты, 30 секунд (10.09.2011 - 22:55) vital написал(а):
"ненужное" - это просто символы !@#$%^&*() или вообще что угодно?
Если первое - то легко убираются прегреплейсом.
Если второе - никак.

Спустя 28 минут, 56 секунд (10.09.2011 - 23:24) dager12 написал(а):
Цитата (vital @ 10.09.2011 - 19:55)
"ненужное" - это просто символы !@#$%^&*() или вообще что угодно?
Если первое - то легко убираются прегреплейсом.
Если второе - никак.

Спасибо,а если я хочу оставить только текст и цифры,то выглядеть будет так :
if(!empty(city)) preg_replace('/^[a-z0-9]{3,12}$/i',$city))
или по другому?И как туда русские буквы добавить?[a-zа-я0-9] так?)

Спустя 12 минут, 14 секунд (10.09.2011 - 23:37) vital написал(а):
Нет. Хотя бы потому, что у прегреплейса 3 аргумента как минимум.
1.
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
2.
Реплейсом я предлагал заменить просто то что вам не надо. А если вам надо просто выдрать из строки..
preg_match('#([a-zA-Z0-9а-яА-Я])+#',$city,$match);
$match[1]=Ваш город.

Спустя 3 минуты, 50 секунд (10.09.2011 - 23:40) vital написал(а):
А еще могу посоветовать юзать \w \d .

Спустя 3 минуты, 37 секунд (10.09.2011 - 23:44) dager12 написал(а):
Спасибо за помощь,буду пробовать.

Спустя 1 час, 19 минут (11.09.2011 - 01:03) Игорь_Vasinsky написал(а):
если в юникоде (UTF)

if(!empty($city)) 
{
if(!preg_replace('/^[\pN\pL]{3,12}$/iu',$city))
echo "Не прошли вы паттерн";
}


\pN и \pL это \w и \d рекомендованные в юникоде

Спустя 14 часов, 3 минуты, 11 секунд (11.09.2011 - 15:06) Winston написал(а):
Или
$notAllow = Array('/', '!', '@', '#', '$', '%', '^', 
'&', '*', ')', '(', '_', '=', '_',
'\'', '"', ':', ';', '№', '.');
$str = "*/.:Москва%№";
echo str_replace($notAllow, '', $str);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.