Удалить спецсимвол и номер только в php - PullRequest
1 голос
/ 14 мая 2019

Как удалить цифры и специальные символы, не удаляя пробелы в строке?

например:

$input = "Random string with random 98 and %$% output"; 

$filtered_input = preg_replace("/[^a-zA-Z\s]/", "", $input);

Я пробовал приведенный выше код, но он не работает. Я также пытался прочитать руководство по PHP, но я не совсем понимаю содержание. Все примеры, которые я нашел в сети, удаляют пробелы из строки. Может ли кто-нибудь показать мне, как это можно сделать, или предложить хорошее чтение для меня

Большое спасибо.

1 Ответ

1 голос
/ 14 мая 2019

Вы можете использовать

$input = "Random string with random 98 and %$% output"; 
$filtered_input = trim(preg_replace("/\s*(?:[\d_]|[^\w\s])+/", "", $input));
echo $filtered_input;

Вывод:

Random string with random and output

См. Демонстрацию регулярных выражений и демонстрацию PHP .

Подробности:

  • \s* - 0+ пробелов (перед значением, которое необходимо удалить)
  • (?:[\d_]|[^\w\s])+ - одинили более вхождений либо цифры, либо подчеркивания, либо любого символа, отличного от слова и пробела.

Функция trim удаляет все результирующие начальные пробелы, если таковые имеются.

...