正则表达式除了字符串+组的使用

时间:2014-12-24 16:57:21

标签: php regex

我试图制作html标签的白名单,这是我的代码:

$string = "<x>-<x>";
$result = preg_match('#^<(?!white1|white2)>.*<(\1)>$#i', $string);

但它返回错误,我不知道为什么。我简化了正则表达式以避免混淆,但这仍然是相同的想法。

我希望匹配每个正确的标签,但我希望保持安全。这个正则表达式将在preg_replace上删除每个匹配的标签,并让我允许的那些。

提前感谢您的帮助!

编辑:如果我找到了使用正则表达式的方法,我会把解决方案放在这里。但就目前而言,我会使用strip_tags()

EDIT2:我认为最简单的方法是解析所有标签,然后还原我们允许的标签。

1 个答案:

答案 0 :(得分:0)

如果您想消除不需要的标签,可以使用strip_tags

$allowedTags     = '<p><a><img>';
$filteredContent = strip_tags($content, $allowedTags);