我正在寻找正则表达式,如果它在Java中的段落中找到特定的单词,则返回false

时间:2015-04-01 13:22:45

标签: regex

在我们的应用程序中,我们允许用户编写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&=&amp%\\\-_|<>/]+)$

1 个答案:

答案 0 :(得分:0)

您可以使用替代方法来检查输入文本中是否出现这些不受欢迎的单词。

(?s)^((?!cellpadding|cellspacing|onmouseover).)*$

我想这个问题不是关于解析HTML ,只是验证特定工具中的某些输入。