JAVASCRIPT中引号的处理
By:Roy.LiuLast updated:2008-10-28
这是一个老生常谈的问题。在 javascript脚本中 如果要返回自己需要的一些值,而这些值中如果有单引号或者双引号的话,就会引发JAVASCRIPT的错误。
网上查了很多资料说要用专一符号 “\" 比如 """ 表示为"\"".但在我试验的过程中还是没怎么成功。我的程序如下:
protected void Button1_Click(object sender, EventArgs e)
{
string strone = this.GetSelectValue();
strone = JSStringEscape(strone, false);
string str = "";
if (!this.IsClientScriptBlockRegistered("back"))
{
this.RegisterStartupScript("back", str);
}
//string str = this.GetSelectValue();
//Response.Write("");
}
其中 GetSelectValue() 是自己定义的一个过程 从数据库中得到一些东西。这些里面可能含有一些单引号,或者双引号的。
JSStringEscape 是用来对得到的值进行转换的。
private string JSStringEscape(string raw, bool inHtmlAttribute)
{
raw = raw.Replace("\r\n", "\\n").Replace("\r", "").Replace("\n", "\\n");
if (inHtmlAttribute)
raw = raw.Replace("\"", """).Replace("'", "\\'");
else
raw = raw.Replace("'", "\\'").Replace("\"", "\\\"");
return raw;
}
转换之后在程序中就可以正常使用了。
网上查了很多资料说要用专一符号 “\" 比如 """ 表示为"\"".但在我试验的过程中还是没怎么成功。我的程序如下:
protected void Button1_Click(object sender, EventArgs e)
{
string strone = this.GetSelectValue();
strone = JSStringEscape(strone, false);
string str = "";
if (!this.IsClientScriptBlockRegistered("back"))
{
this.RegisterStartupScript("back", str);
}
//string str = this.GetSelectValue();
//Response.Write("");
}
其中 GetSelectValue() 是自己定义的一个过程 从数据库中得到一些东西。这些里面可能含有一些单引号,或者双引号的。
JSStringEscape 是用来对得到的值进行转换的。
private string JSStringEscape(string raw, bool inHtmlAttribute)
{
raw = raw.Replace("\r\n", "\\n").Replace("\r", "").Replace("\n", "\\n");
if (inHtmlAttribute)
raw = raw.Replace("\"", """).Replace("'", "\\'");
else
raw = raw.Replace("'", "\\'").Replace("\"", "\\\"");
return raw;
}
转换之后在程序中就可以正常使用了。
From:一号门
Previous:丑陋的上海人(原创)
Next:可怜的张江男
COMMENTS