возвращать слова пробелы числа или совпадать со всеми, ожидайте специальные символы, такие как * & $! ^ &? - PullRequest
1 голос
/ 29 июля 2010

хорошо, у меня есть строка

'Hello^<php>World&*124><
i ju*st press enteR'

как мне вернуть его (функция лучше?)

'Hello World123
i just press enter'

позволяют

  • номер
  • текст
  • пробелы, перевод строки и т. Д.

как мне это сделать с помощью регулярного выражения? я должен использовать регулярное выражение? есть ли другой способ?

Спасибо

Адам Рамадан

Ответы [ 2 ]

2 голосов
/ 29 июля 2010

Вы можете сделать это:

function removeBad($str)
{
  return preg_replace("/[^a-zA-Z0-9_ (\n|\r\n)]+/", "", $str);
}

Это удалит все, кроме алфавита, цифр, пробела и новой строки

Если вы также хотите удалить любые теги, такие как <php> вваш текст, вы можете сделать:

function removeBad($str)
{
  $str = strip_tags($str);
  return preg_replace("/[^a-zA-Z0-9_ (\n|\r\n)]+/", "", $str);
}

Использование:

$str = removeBad('Hello^<php>World&*124><');
echo $str;

Результат:

HelloWorld124

.

$str = removeBad('i ju*st press EnteR');
echo $str;

Результат:

i just press EnteR
0 голосов
/ 29 июля 2010

Подстановка Regex может сделать это для вас. Я думаю, что вам нужно два. Первый, который удаляет все между символами <и>. Второй, чтобы удалить любой символ, который не в вашем разрешенном наборе символов. Это самый безопасный способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...