如果它包含特定的字符串,则删除链接标记 - javascript

时间:2016-08-03 08:14:16

标签: javascript regex

我需要删除包含特定字符串的所有标记, 我怎样才能在javascript中实现这一点?

这是字符串

<link rel="stylesheet" href="https://REMOVEME">
<link rel="stylesheet" href="https://ccc">
<link rel="stylesheet" href="https://abc/REMOVEME">
<div>yes</div>

这就是结果

<link rel="stylesheet" href="https://ccc">
<div>yes</div>

2 个答案:

答案 0 :(得分:0)

htmlString.replace(/<link[^>]*href="[^>]*REMOVEME[^>]*"[^>]*>/gi,'')

答案 1 :(得分:0)

此类任务更好not done with regular expressions

而是使用JavaScript可用的DOM接口,例如使用此ES6函数:

&#13;
&#13;
function removeLinks(html, match) {
    var container = document.createElement('span');
    container.innerHTML = html;
    Array.from(container.querySelectorAll('link[href*=' + CSS.escape(match) + ']'))
        .forEach( link => link.parentNode.removeChild(link) );
    return container.innerHTML;
}

// Sample input
var html = '<link rel="stylesheet" href="https://REMOVEME">' +
           '<link rel="stylesheet" href="https://ccc">' +
           '<link rel="stylesheet" href="https://abc/REMOVEME">' + 
           '<div>yes</div>';

// Remove links that match REMOVEME
html = removeLinks(html, 'REMOVEME');

// Output result
console.log(html);
&#13;
&#13;
&#13;