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

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

使用正则表达式。

 var regex = /(<([^>]+)>)/ig var body = "

test

" var result = body.replace(regex, ""); alert(result);

这是演示

希望这可以帮助。

您可以按照此示例操作

 var stringContent = "

Hi dear

Wish you a happy birthday

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

这更安全:

 function plaintext(html){ return $("
").html(html).text(); }

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

  • 你不需要你的正则表达式中的i标志,因为你不匹配任何字母字符。 见这里: http : //jsfiddle.net/66L6nfwt/2/
  • 你不需要任何一对支架,因为你只需更换整个匹配。 见这里: http : //jsfiddle.net/66L6nfwt/3/
  • 如果在文本内容中同时使用字符<> ,则可以改进此正则表达式,因为它将失败。 见这里: http : //jsfiddle.net/66L6nfwt/4/
  • 所以这是一个正则表达式改进: /<\/?\w+[^>]*\/?>/g 。 见这里: http : //jsfiddle.net/66L6nfwt/5/

最终代码:

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

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

"test".stripTags()

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

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

使用普通的javascript你可以这样做

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

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

解决方案使用JQuery:

 var content = "

Dear Andy,

This is a test message.

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

使用JavaScript解决方案:

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

另请查看此链接: 在JavaScript中删除HTML标记