首页 文章

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

提问于
浏览
0

我想检查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

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

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

    尝试这将匹配html,如果它包含 on 但不匹配它,如果它是中间的单词

相关问题