为了账号安全,请及时绑定邮箱和手机立即绑定

相当于Javascript的HtmlSpecialChars?

相当于Javascript的HtmlSpecialChars?

UYOU 2019-06-28 17:22:48
相当于Javascript的HtmlSpecialChars?显然,这比我想象的更难找到。甚至很简单.。在Javascript中是否有相当于PHP的htmlSpecialchars的函数?我知道自己实现这一点相当容易,但是使用内置函数(如果可用的话)就更好了。对于那些不熟悉PHP的人,htmlSpecialchars会翻译以下内容<htmltag/>进&lt;htmltag/&gt;我知道escape()和encodeURI()不要这样工作。
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您的解决方案代码有一个问题-它只会逃避每个特殊字符的第一次出现。例如:

escapeHtml('Kip\'s <b>evil</b> "test" code\'s here');Actual:   Kip&#039;s &lt;b&gt;evil</b> &quot;test" code's here
Expected: Kip&#039;s &lt;b&gt;evil&lt;/b&gt; &quot;test&quot; code&#039;s here

下面是正常工作的代码:

function escapeHtml(text) {
  return text      .replace(/&/g, "&amp;")
      .replace(/</g, "&lt;")
      .replace(/>/g, "&gt;")
      .replace(/"/g, "&quot;")
      .replace(/'/g, "&#039;");}

更新

下面的代码将产生与上面相同的结果,但是它的性能更好,特别是在大型文本块上(谢谢)jbo5112).

function escapeHtml(text) {
  var map = {
    '&': '&amp;',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#039;'
  };

  return text.replace(/[&<>"']/g, function(m) { return map[m]; });}


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 817 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信