在我们的应用程序中,我们允许用户编写HTML脚本,如果它包含onmouseover,onclick等特定单词,我不想保存该脚本。
E.g。如果用户输入类似下面的脚本,则regex应返回false。 如果它不包含这些单词,则应该允许用户输入的任何内容。
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>
<td><b onclick="alert('Wufff!')">click me!</b></td>
<td width="190"><b onmouseover="alert('Wufff!')">click me!</b></td>
</tr>
</tbody>
我尝试了这个正则表达式并且它不起作用:
^(?=((?!onmouseover\s*=|onclick).)*$)(?=[\p{L}\p{P}\p{N}\p{So}\p{Sc}\s+%26&=&%\\\-_|<>/]+)$
答案 0 :(得分:0)
您可以使用替代方法来检查输入文本中是否出现这些不受欢迎的单词。
(?s)^((?!cellpadding|cellspacing|onmouseover).)*$
我想这个问题不是关于解析HTML ,只是验证特定工具中的某些输入。