如何使用Javascript / jQuery从div内容中删除HTML标记?

时间:2014-03-14 07:25:16

标签: javascript jquery html

我制作了一个div标记并将其内容存储在变量中。如果此标记包含p,b或任何其他标记,则应将其从字符串中删除。我怎样才能做到这一点?

6 个答案:

答案 0 :(得分:17)

使用正则表达式。

var regex = /(<([^>]+)>)/ig
var body = "<p>test</p>"
var result = body.replace(regex, "");

alert(result);

这里是DEMO

希望这有帮助。

答案 1 :(得分:8)

您可以按照此示例

var stringContent = "<p>Hi dear</p><p>Wish you a happy birthday</p>";

var text = $(stringContent).text();

答案 2 :(得分:5)

这更安全:

function plaintext(html){
  return $("<div/>").html(html).text();
}

答案 3 :(得分:3)

  

我想在接受的答案之上添加一些,这表明正则表达式为var regex = /(<([^>]+)>)/ig

最终代码:

var regex = /<\/?\w+[^>]*\/?>/g,
    body = "<sTrong><b>test<b></STRONG><b> sss</b><em> what if you write some maths: i < 2 && i > 4.</em>";

alert(body.replace(regex, ""));
  

将函数放在内置的“String”类中也是有帮助的,这样您就可以直接执行此操作:

     
    

"<em>test</em>".stripTags()

  
String.prototype.stripTags = function()
{
    return this.replace(/<\/?\w+[^>]*\/?>/g, '');
};

最后,如果您的字符串是DOM节点,则可以alert(element.innerText || element.textContent);内置甚至更安全!请参阅此处的示例:http://jsfiddle.net/66L6nfwt/6/

答案 4 :(得分:1)

使用普通的javascript,您可以将其作为

string.replace(/(<([^>]+)>)/ig,"");

我认为这可能比.text()方法更快。

答案 5 :(得分:0)

使用JQuery的解决方案:

var content = "<p>Dear Andy,</p><p>This is a test message.</p>";

var text = $(content).text();

使用JavaScript的解决方案:

function removeTags(){
    var txt = document.getElementById('myString').value;
    var rex = /(<([^>]+)>)/ig;
    alert(txt.replace(rex , ""));

}

另请看这个链接: Strip HTML Tags in JavaScript