如何使用preg_match只允许特定的html代码片段?

时间:2014-01-11 22:33:17

标签: php regex preg-match

我使用preg_match()来验证表单数据,我只想允许特定的 html代码部分

我的代码:

preg_match("/^[a-zA-Z0-9\söüóőúéáűíäÖÜÓŐÚÉÁŰÍÄ\-(class=\"del\")(title=\"Sample title\")(class=\"another\-class\")\(\)\/<>,.]*$/",$r)

我允许使用的字符很简单,但我只想在以下部分中添加"=个字符:

class="del"
title="Sample title"
class="another-class"

因此,包含任何(0个或更多)这些部分的任何顺序的输入必须返回true,但其他任何内容都需要class="something"he said "hey"应该返回false

你能帮帮忙吗?谢谢你们!

1 个答案:

答案 0 :(得分:-1)

我宁愿从输入中删除特定模式,然后匹配常规语法。

$patterns = array ('class="del"', 'title="Sample title"', 'class="another-class"');

$input = 'hey man did you notice class="del"?';
if (preg_match ("/^[a-z ?]*$/", str_replace ($patterns, '', $input)))
    echo "We got a winner!";

如果这是用于输入检查,我认为性能只是一个美学问题。

该解决方案使代码保持可读性。