我使用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
你能帮帮忙吗?谢谢你们!
答案 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!";
如果这是用于输入检查,我认为性能只是一个美学问题。
该解决方案使代码保持可读性。