返回单词空格数字或匹配所有期望特殊字符像*& $!^&?

时间:2010-07-29 18:18:09

标签: php regex filter

好吧我有一些字符串

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

我如何将其归还(函数更好?)

'Hello World123
i just press enter'

允许

  • 文本
  • 空格,换行符等

我如何用正则表达式做到这一点?我必须使用正则表达式吗?还有另一种方式吗?

由于

Adam Ramadhan

2 个答案:

答案 0 :(得分:2)

你可以这样做:

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

答案 1 :(得分:0)

正则表达式替换可以为您完成此操作。我想你需要两个。第一个删除&之间的所有内容。和&gt;字符。第二个删除任何不在您允许的字符集中的字符。这是最安全的方法。