我想知道可能的Regex适合检查包含某些HTML标记的字符串,即<b>
,<i>
和<a>
,或者它没有任何标记。使用PHP preg_match。
例如:
"This a text only.." return true
"This is a <b>bold</b> text" return true
"this is <script>alert('hi')</script>" return false
"this is <a href="#">some</a>and <h1>header</h1>" return false
答案 0 :(得分:8)
请尝试使用strip_tags()
。正则表达式不适合解析HTML标记。
var_dump(isTextClean('This a text only..')); // true
var_dump(isTextClean('This is a <b>bold</b> text')); // true
var_dump(isTextClean('this is <script>alert(\'hi\')</script>')); // false
var_dump(isTextClean('this is <a href="#">some</a>and <h1>header</h1>')); // false
function isTextClean($input) {
$result = strip_tags($input, '<b><i><a>');
if ($result != $input) {
return false;
} else {
return true;
}
}