有没有一种简单的方法可以在JavaScript中获取一个html字符串并去掉html?


当前回答

使用jQuery,您可以使用

$('#elementID').text()

其他回答

作为jQuery方法的扩展,如果字符串可能不包含HTML(例如,如果您试图从表单字段中删除HTML)

jQuery(html).text();

如果没有HTML,将返回空字符串

Use:

jQuery('<p>' + html + '</p>').text();

相反

更新:正如评论中所指出的,在某些情况下,如果攻击者可能影响html的值,则此解决方案将执行html中包含的javascript,请使用不同的解决方案。

要获得更简单的解决方案,请尝试此=>https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/

var StrippedString = OriginalString.replace(/(<([^>]+)>)/ig,"");

这个包非常适合剥离HTML:https://www.npmjs.com/package/string-strip-html

它可以在浏览器和服务器(例如Node.js)上工作。

如果你想保留链接和内容结构(h1、h2等),那么你应该检查TextVersionJS。你可以将它与任何HTML一起使用,尽管它是为了将HTML电子邮件转换为纯文本而创建的。

用法很简单。例如,在node.js中:

var createTextVersion = require("textversionjs");
var yourHtml = "<h1>Your HTML</h1><ul><li>goes</li><li>here.</li></ul>";

var textVersion = createTextVersion(yourHtml);

或者在浏览器中使用纯js:

<script src="textversion.js"></script>
<script>
  var yourHtml = "<h1>Your HTML</h1><ul><li>goes</li><li>here.</li></ul>";
  var textVersion = createTextVersion(yourHtml);
</script>

它也适用于require.js:

define(["textversionjs"], function(createTextVersion) {
  var yourHtml = "<h1>Your HTML</h1><ul><li>goes</li><li>here.</li></ul>";
  var textVersion = createTextVersion(yourHtml);
});

来自CSS技巧:

https://css-tricks.com/snippets/javascript/strip-html-tags-in-javascript/

常量原始字符串=`<div><p>嘿,这是什么东西</p></div>`;conststripedString=originalString.replace(/(<([^>]+)>)/gi,“”);console.log(strippedString);