JS RegEx删除所有HTML标签及其内容?

时间:2013-02-28 16:09:34

标签: javascript jquery regex

例如,我需要从中得到:

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

获得:

Before Bold After Bold.

我试过了:

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

但它没有按预期工作。

3 个答案:

答案 0 :(得分:5)

试试这个:

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

它对我有用。

看到它正常工作here

答案 1 :(得分:1)

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);

答案 2 :(得分:0)

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

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