我正在尝试从HTML <body>
字符串中获取所有内联事件代码的列表,我将如何才能执行此操作?
示例:
<a onclick='foo()'></a>
我想要提取onclick='foo()'
。
是否可以使用REGEX或任何其他替代方案?
答案 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);
}
}