簡體   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