您的位置:首页 > Web前端

有关“ &”由后台输出到前端的问题

2012-03-06 22:55 176 查看
在后台用C#生成(或从SQL数据库读取一字段值)一字符串:“AB&&C&D”,并试图在客户端通过JS获取其值,结果发现,在IE中显示为:“AB&&C”,FF中为:“AB&&C&D”。显然,IE中的结果与实际需要的值有出入。为了能在IE中正常显示其值,可以在后台或前端修正。

(一)在后台修正:

为了将字串中的“&”字符都替换为“&”,可以写一个方法:

public string Repl(string Str)
{
string newStr = string.Empty;
newStr= Str.Replace("&", "&");
return newStr;
}

之后将此方法应用到需要修正的字符中:

protected string JSON = string.Empty;

protected void Page_Load(object sender, EventArgs e)
{
string a = @"AB&&C&D";
JSON = "{\"A\":\""+ Repl(a) +"\"}";
}




(二)在前端修正:

此时后台代码中并没有写入并应运Repl()方法:

protected string JSON = string.Empty;

protected void Page_Load(object sender, EventArgs e)
{
string a = @"AB&&C&D";
JSON = "{\"A\":\""+ a +"\"}";
}

但为了能将字符串中所有的“&”字符都在客户端正确显示,可以用JS写一个Repla()方法:

function Repla(str){
var ret='';
if(str.indexOf('&')>-1){
ret=str.replace(/&/g,'&');
}
return ret;

}

之后将此方法应运到需要修正的字符即可。

能过上述两种方法,均可以在IE中正确显示包含“&”的字串值。

结果都为:“AB&&C&D”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: