从HTML字符串中获取所有内联事件

时间:2011-10-16 07:51:19

标签: javascript regex parsing dom

我正在尝试从HTML <body>字符串中获取所有内联事件代码的列表,我将如何才能执行此操作?

示例:

 <a onclick='foo()'></a>

我想要提取onclick='foo()'

是否可以使用REGEX或任何其他替代方案?

2 个答案:

答案 0 :(得分:0)

这是一个。事件将是第1组:

<\w+[^>]+(on[a-z]+=["'][^"']+["'])[^>]*>

答案 1 :(得分:0)

您应该让浏览器进行解析,例如:

var doc = document.implementation.createHTMLDocument('');
doc.documentElement.innerHTML = '<body onload="alert(1)"></body>'; // your string here

然后使用DOM方法获取on*属性:

var attributes = Array.prototype.slice.call(doc.body.attributes);
for (var i = 0; i < attributes.length; i++) {
    if (/^on/.test(attributes[i].name)) {
        console.log(attributes[i].name, attributes[i].value);
    }
}