繁体   English   中英

如何在标签内搜索特定属性并使用javascript正则表达式将其删除

[英]How to search specific attribute within a tag and remove it using javascript regex

基本上我有这种标签(例如)

<div type="text" onclick="event();" onblur="event();">this div has onclick and onblur functions</div>

我想使用参考变量删除该标签的某些属性。

var refAttribs = ['onclick', 'onblur'];

因此,应从refAttribs删除所有属性。 注意不要剥离div的内容。 因为它还包含来自refAttribs变量的字符串。

如何使用正则表达式摆脱它们? 提前致谢

如前所述,标记是一个字符串,则可以使用以下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节点的句柄。 多一点信息会有所帮助。

好吧,试试这个:

要删除onclick,正则表达式将为:

    (<[^>]+)\s+onclick\s*=[\'"].*?[\'"]

正则表达式可视化

Debuggex演示

removeAttr函数:

function removeAttr(html, attr) {

    return html.replace(new RegExp('(<[^>]+)\\s+' + attr + '\\s*=[\'"].*?[\'"]', 'gi'), '$1');
}

http://jsfiddle.net/rooseve/pC4aH/1/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM