[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как оставить только буквы и цифры?
dvs
никогда не составлял регулярки, помогите плиз, как оставить только буквы и цифры? так правильно?

$str = preg_replace ("/[^a-zA-ZА-Яа-я0-9_]/","",$str);






Спустя 6 минут, 46 секунд (16.09.2011 - 00:33) inpost написал(а):
dvs
ё - указывается отдельно.
Модификатор u - для юникода.

И что значит, правильно ли так? Ты лучше скажи, работает или нет.

Спустя 20 минут, 45 секунд (16.09.2011 - 00:54) moskitos80 написал(а):
Если только буквы и цифры без пробелов то вот:
$str = preg_replace('/[^a-zа-яё0-9]/i','',$str);;

Спустя 4 минуты, 22 секунды (16.09.2011 - 00:58) inpost написал(а):
moskitos80
Модификатор u для кодировки UTF... ну я же выше написал...

Спустя 6 часов, 55 минут, 21 секунда (16.09.2011 - 07:54) dvs написал(а):
мой код работает, но ё вырезал, этот код не вырезает, работает отлично

$str = preg_replace('/[^a-zа-яё0-9]/i','',$str);


А как пробелы оставить?

Спустя 20 минут, 4 секунды (16.09.2011 - 08:14) dvs написал(а):
спасибо, сам уже догадался)))

Спустя 1 час, 21 минута, 17 секунд (16.09.2011 - 09:35) dvs написал(а):
да, и еще вопрос)) как оставить определенные символы, пробел понятно \s, а тире, подчеркивание, длинное тире, процент?(те то из чего может состоять название файла)

Спустя 21 минута, 14 секунд (16.09.2011 - 09:56) Winston написал(а):
Цитата (dvs @ 16.09.2011 - 09:35)
(те то из чего может состоять название файла)

Здесь тогда и не надо регулярки, просто засунуть недопустимые символы в массив и заменять простым str_replace
Вот так
$notAllow = Array('/', '\\', '"', ':', '*', '?', '<', '>', '|');
$str = 'my_f\i/:?*l"<|e>.php';

echo str_replace($notAllow, '', $str);

Спустя 7 минут, 32 секунды (16.09.2011 - 10:04) twin написал(а):
Тут нужно наоборот. Разрешить то, что можно. А не запретить, чего нельзя. Ибо символов катастрофически много бывает, всех не перевешаешь.

Спустя 10 минут, 10 секунд (16.09.2011 - 10:14) Winston написал(а):
Цитата (twin @ 16.09.2011 - 10:04)
Тут нужно наоборот. Разрешить то, что можно. А не запретить, чего нельзя

Ну это правильно: "Запрещено все, что не разрешено" :)
Но он просит
Цитата (dvs @ 16.09.2011 - 09:35)
те то из чего может состоять название файла

А вот как раз те символы которые я в массив занес, запрещены в имени файла..
Или тогда так
$str = 'my_f\i/:?*l"<|e>.php';
echo preg_replace("#([^-a-zа-яёЁ0-9_!'&\$@%\s\*\.]*)#iu", '', $str);

И дописывать символы которые ты хочешь оставить...

Спустя 3 минуты, 35 секунд (16.09.2011 - 10:17) dvs написал(а):
Цитата (dvs @ 16.09.2011 - 09:35)
(те то из чего может состоять название файла)

Здесь тогда и не надо регулярки, просто засунуть недопустимые символы в массив и заменять простым str_replace
Вот так
$notAllow = Array('/', '\\', '"', ':', '*', '?', '<', '>', '|');
$str = 'my_f\i/:?*l"<|e>.php';

echo str_replace($notAllow, '', $str);


боюсь пропустить какой нибудь недопустимый символ, а нужно не много символов а только те что перечислил, остальное вырезать

Спустя 33 минуты, 16 секунд (16.09.2011 - 10:51) dvs написал(а):
Большущее спасибо всем за помощь! добавил символы которые нужно, процент только не добавился почему то, ну это не критично

Спустя 11 минут, 47 секунд (16.09.2011 - 11:03) l@pteff написал(а):
dvs
Проценты тоже "срезает" норм, проверь у себя:

$notAllow = Array('/', '\\', '"', ':', '*', '?', '<', '>', '|', '%');
$str = 'my_f\i/:?*l"<|e>%.php';
echo str_replace($notAllow, '', $str);


Быстрый ответ:

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