替换为HTML字符实体并还原

时间:2013-10-14 17:50:52

标签: javascript php html

当我在聊天室中更换内容时,它会出现在“HTML Character Entities”框中。但是,我希望它能够恢复并实际显示当它在聊天室中显示时输入的字符。因此,我使用以下代码来阻止任何html被输入并通过用实体替换某些html字符来破坏聊天室(我希望在看到其他人之前得到一两个工作,我知道还有更多。) ....

的Javascript

                 var str1 = this.value.replace(/>/g, '<');
         if (str1!=this.value) this.value=str1;       

          var str2 = this.value.replace(/</g, '&#62;');
          if (str2!=this.value) this.value=str2;

然后以下代码显示输入数据库等后的文本。在更新聊天框时,它使用以下内容添加更新的消息......

从php返回,然后通过以下javascript显示

    $('#chatroomarea').append($("<p>"+ data.text[i] +"</p>"));

我已经乱搞了几次,将它改为val并使用

     .html(.append($("<p>"+ data.text[i] +"</p>"))); 

等。但我没有运气。我不太清楚如何做到这一点我只需要HTML Character Entities实际显示回真正的Character而不是显示诸如......'&amp;#62'

之类的东西

这可能是我需要实际放入替换代码中的内容,它将包含替换代码(它只是一个例子,我不完全确定如何编写它)...

    var str1 = this.value.replace(/>/g, '.html(&#60;)');

对此有任何帮助将非常感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

$('#chatroomarea').append($("<xmp>"+ data.text[i] +"</xmp>"));

HTML xmp代码

该用途已弃用,但在大多数浏览器中均受支持。

另一种选择是使用样式textarea,据我所知,这两个标签不会像现在这样使用HTML标签。