包含“on”JS触发器的HTML标记的正则表达式匹配

时间:2013-12-06 17:04:45

标签: regex

我想检查一个HTML标签(可能分成多行)是否包含“on”JS触发器。实际的HTML标记和Javascript无关紧要。例如:

    <img src="foo.jpg" onblur="foo()"/>Other stuff

我已经使用该模式完成了大部分工作:

    <\w+([^>])+?(on\w+)+[\s\S]+?>

然而,这也符合:

    <p style="font-size:11px;">Other stuff</p>

我将原始模式修改为:

    <\w+([^>])+?(\s)+(on\w+)+[\s\S]+?>

但仅当JS触发器关键字前面有2个或更多空格字符时才匹配。我们将欣赏正确方向的推动。

2 个答案:

答案 0 :(得分:0)

可能会工作<\w+(?=\s)[^>]*?\s(on\w+)[\s\S]+?>

答案 1 :(得分:0)

(?m)(?i).*(?=([^a-z]on)).*>

如果它包含on,请尝试匹配html但如果它是中间字则不匹配