基本上我有这种标签(仅举例)
<div type="text" onclick="event();" onblur="event();">this div has onclick and onblur functions</div>
我希望使用引用变量删除该标记的一些属性。
var refAttribs = ['onclick', 'onblur'];
因此它应该删除refAttribs
的所有属性。
小心不要删除div的内容。因为它还包含来自refAttribs
变量的字符串。
如何使用正则表达式摆脱它们? 提前致谢
答案 0 :(得分:2)
正如您所说,标签是一个字符串,那么您可以使用以下javascript对其进行处理。
var refAttribs = ['onclick', 'onblur'];
function remove(tagToClean)
{
var result = tagToClean;
for(var i=0; i<refAttribs.length; i++)
{
regex = new RegExp(refAttribs[i] + "=\"[a-zA-Z\(\);]*?\"", "g");
result = result.replace(regex, "");
}
return result;
}
您可以通过传入字符串来调用该方法。
remove('<div type="text" onclick="event();" onblur="event();">this div has onclick and onblur functions</div>');
我不是百分百肯定你在这里想做什么。你想修改DOM吗?如果是这样,您将需要修改方法以接受DOM节点的句柄。更多信息会有所帮助。
答案 1 :(得分:1)
好吧,试试这个:
要删除onclick,正则表达式将是:
(<[^>]+)\s+onclick\s*=[\'"].*?[\'"]
removeAttr函数:
function removeAttr(html, attr) {
return html.replace(new RegExp('(<[^>]+)\\s+' + attr + '\\s*=[\'"].*?[\'"]', 'gi'), '$1');
}