【问题标题】:How to safely convert / parse HTML and other symbols to simple text?如何安全地将 HTML 和其他符号转换/解析为简单文本?
【发布时间】:2017-11-20 08:22:36
【问题描述】:

我有一个使用 NodeJs 和 HTML 开发的聊天应用程序。现在,如果我输入如下内容,我想要的只是:

  1. 嗨 > 怎么样?
  2. <div style="color:red"></div>
  3. & 你能

所有这些都应按原样显示。并且 HTML 标签不应该被渲染并且文本不应该是红色的。简而言之,输出应该是这样的:

  1. 嗨 > 怎么样?
  2. <div style="color:red"></div>
  3. & 你能

我在这里查找了一些旧问题和答案,但我想知道 Facebook、WhatsApp、Quora 等主要网站是如何做这些事情的?就像将 > 和 replace() 这样的方法?

【问题讨论】:

    标签: javascript jquery html css node.js


    【解决方案1】:

    您可以使用<xmp> 标签。里面的所有内容都是纯文本,而不是 HTML。

    <xmp><div style="color:red">hi</div></xmp>

    或者,您可以使用<plaintext> 标签,但它没有关闭标签,所以使用起来很烦人。

    <plaintext><div style="color:red">hi</div></plaintext>

    编辑:

    您可以使用一些 JavaScript 和 jQuery 来实现:

    var text = $('.container').html();
    $('.container').text(text);
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <div class="container"><div style="color:red">hi</div></div>

    这会抓取.container div 中的html,并将其转换为纯文本。

    【讨论】:

    • 我明白这件事。但是,当您检查 HTML 中的 Facebook 聊天消息 div、它们的状态字段和 WhatsApp 聊天气泡时,您不会看到类似
        的任何内容。他们是怎么做的?有什么想法吗?
    • @VikasKumar 我的答案怎么样?
    • 插入文本而不是 html 是个好方法,但我必须插入 HTML。如果您知道,聊天气泡就是 HTML。问题是该聊天气泡内的消息文本。我希望那东西被转换。我已经使用&amp;lt&amp;gt 解决了这个问题。谢谢。
    • 对不起。我已经知道你说了什么。我投了赞成票。还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 2020-06-07
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多