当前位置: 首页 > 面试题库 >

HtmlSpecialChars是否等同于Javascript?

桂梓
2023-03-14
问题内容

显然,这比我想象的要难找到。而且甚至很简单…

是否有与Javascript中内置的PHP htmlspecialchars等效的功能?我知道自己很容易实现,但是使用内置函数(如果可用)会更好。

对于不熟悉PHP的人,htmlspecialchars可将类似的内容<htmltag/>转换为&lt;htmltag/&gt;

我知道这一点escape()encodeURI()因此不能这样工作。


问题答案:

解决方案代码存在问题-它只会转义每个特殊字符的第一次出现。例如:

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]; });
}


 类似资料:
  • 我已经确定,对于我的数据集,使用并行流确实比使用串行流快。说到这里,我想知道使用的ForkJoinPool的情况,正如在这个问题中所讨论的:Java8并行流中的自定义线程池。 考虑到这一点, 对于将使用的池,是否低于1和2的当量? 2) 如果答案是肯定的,那么方法为什么存在呢?

  • 问题内容: 他们是一样的还是不是?如果是的话,为什么read在方法内部使用但可以正常工作时却出现此错误? 尝试在提供程序的方法或update回调内部使用。 问题答案: 好吧,他们不一样。 您不应该在方法内部使用。相反,坚持旧的是金色图案: 当您想在回调中使用上述模式时使用,例如,当按下按钮时,可以说它们都在执行相同的操作。

  • 问题内容: 我有一个byte [],想将其复制到另一个byte []中。也许我在这里展示了我的简单“ C”背景,但是在Java字节数组中是否有等同于memcpy()的东西? 问题答案: 您可以尝试或使用阵列功能,在像类。两者都应在引擎盖下为您提供本机性能。 Arrays.copyOf可能对可读性有利,但仅在Java 1.6中引入。

  • 问题内容: 我正在配置Java客户端,它的工作是建立与服务器的TLS连接。我想使用以下3种密码配置客户端: 在Java支持的密码套件中,我找到了相同的密码,但是开头是SSL,而不是TLS。问题是,如果我用以下方法配置了客户端: 这两个列表是否完全相同,并且服务器将对其进行解释?我担心是否为客户端配置了密码,这意味着与某些不同,并且可能某些服务器不支持。我如何确定? 问题答案: 是的,它们是相同的。

  • 问题内容: 如果我想分配一个char数组(用C表示),该数组保证足够大以容纳任何有效的绝对路径名和文件名,那么它需要多大。 在Win32上,有MAX_PATH定义。Unix / linux相当于什么? 问题答案: 有一个,但是有点问题。从realpath(3)手册页的bug部分中: 此功能的POSIX.1-2001标准版本在设计上已被破坏,因为无法确定输出缓冲区 resolve_path 的合适大

  • 对于那些使用Firebase(FiRecovery)的人来说,您可以拥有一个包含文档的集合,其中每个文档都有一个id,然后一个集合可以保存一个子集合(相当于嵌入文档作为文档数组作为属性)。 然后,这个子集合可以容纳许多文档,而每个文档都有一个id。 在Firestore中,子集合是延迟加载的。 它将获取该集合上的文档,但如果有一个或多个子集合,它将不会检索该集合,除非特别转到该路径。e、 g:集合