简体   繁体   English

JS RegExp删除所有HTML标记及其内容?

[英]JS RegExp to remove all HTML tags and their content?

For example, I need to get from this: 例如,我需要从中获取:

Before Bold <b>In Bold</b> After Bold

To get: 要得到:

Before Bold After Bold.

I tried: 我试过了:

string.replace(/<.*>.*<\/.*>/,'')

But it don't work as expected. 但是它没有按预期工作。

Try this: 尝试这个:

string.replace(/<([^>]+?)([^>]*?)>(.*?)<\/\1>/ig, "")

It worked for me. 它为我工作。

See it working here 看到它在这里工作

var div = document.createElement("div"),
    result = "",
    child;

div.innerHTML = str;
child = div.firstChild;

do {
    if (child.nodeType === 3) {
        result += child.nodeValue;
    }
} while (child = child.nextSibling);

console.log(result);

我不确定正则表达式,但是使用jQuery,您可以轻松删除子项并使用经典的单行代码返回HTML:

string = $('<div>').html(string).children().remove().end().html();

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

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