javascript是否与C#s HttpUtility.HtmlEncode等效?

时间:2012-07-19 13:10:53

标签: c# javascript html-encode

  

可能重复:
  JavaScript/jQuery HTML Encoding

我将信息作为Json传递给客户端,我从我的javascript代码生成一些HTML。我有一个名为name的字段,我将其传递到图像的标题中:

  html.push("<img  title='" + person.Name + "' src . . . 

问题是,如果person.Name是“Joe O'Mally”,因为当我将鼠标悬停在图像上时(因为名称中的'),它只显示为“Joe O”

我不想在服务器端剥离'因为在其他地方我想在页面上显示确切的字符串。

当我悬停图片时,javascript中是否有等效的HttpUtility.HtmlEncode会在图片标题中显示全名?

2 个答案:

答案 0 :(得分:8)

不,但你可以很容易地写一个。

function htmlEnc(s) {
  return s.replace(/&/g, '&amp;')
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/'/g, '&#39;')
    .replace(/"/g, '&#34;');
}

我已经玩过更快的方法(基本上是用一个“替换”调用来做事情),但这对于大多数用途来说表现得非常好,特别是在现代浏览器中。

答案 1 :(得分:0)

Here是一篇很好的帖子,解释了如何使用javascript escape()和unescape()函数,这些可以帮助你完成你想要做的事情。