猿问

相当于Javascript的HtmlSpecialChars?

相当于Javascript的HtmlSpecialChars?

显然,这比我想象的更难找到。甚至很简单.。

在Javascript中是否有相当于PHP的htmlSpecialchars的函数?我知道自己实现这一点相当容易,但是使用内置函数(如果可用的话)就更好了。

对于那些不熟悉PHP的人,htmlSpecialchars会翻译以下内容<htmltag/>&lt;htmltag/&gt;

我知道escape()encodeURI()不要这样工作。


UYOU
浏览 818回答 3
3回答

拉丁的传说

您的解决方案代码有一个问题-它只会逃避每个特殊字符的第一次出现。例如:escapeHtml('Kip\'s&nbsp;<b>evil</b>&nbsp;"test"&nbsp;code\'s&nbsp;here');Actual:&nbsp;&nbsp;&nbsp;Kip&#039;s&nbsp;&lt;b&gt;evil</b>&nbsp;&quot;test"&nbsp;code's&nbsp;here Expected:&nbsp;Kip&#039;s&nbsp;&lt;b&gt;evil&lt;/b&gt;&nbsp;&quot;test&quot;&nbsp;code&#039;s&nbsp;here下面是正常工作的代码:function&nbsp;escapeHtml(text)&nbsp;{ &nbsp;&nbsp;return&nbsp;text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.replace(/&/g,&nbsp;"&amp;") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.replace(/</g,&nbsp;"&lt;") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.replace(/>/g,&nbsp;"&gt;") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.replace(/"/g,&nbsp;"&quot;") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.replace(/'/g,&nbsp;"&#039;");}更新下面的代码将产生与上面相同的结果,但是它的性能更好,特别是在大型文本块上(谢谢)jbo5112).function&nbsp;escapeHtml(text)&nbsp;{ &nbsp;&nbsp;var&nbsp;map&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;'&':&nbsp;'&amp;', &nbsp;&nbsp;&nbsp;&nbsp;'<':&nbsp;'&lt;', &nbsp;&nbsp;&nbsp;&nbsp;'>':&nbsp;'&gt;', &nbsp;&nbsp;&nbsp;&nbsp;'"':&nbsp;'&quot;', &nbsp;&nbsp;&nbsp;&nbsp;"'":&nbsp;'&#039;' &nbsp;&nbsp;}; &nbsp;&nbsp;return&nbsp;text.replace(/[&<>"']/g,&nbsp;function(m)&nbsp;{&nbsp;return&nbsp;map[m];&nbsp;});}
随时随地看视频慕课网APP
我要回答