知道清理.net中用于Javascript的字符串的好方法吗?

时间:2009-10-05 17:46:28

标签: asp.net javascript

我在我的asp.net代码中创建了一条javascript确认消息:

deleteButton.Attributes.Add("onclick", "javascript:return confirm('Are you sure you want to delete client " + clientName + "')"); 

这里的问题是客户端名称可能包含撇号和其他有问题的字符。

有没有人知道好的,简单的方法来清理变量“clientName”,以便我可以安全地在javascript中使用它?

谢谢!

5 个答案:

答案 0 :(得分:11)

new JavaScriptSerializer()。Serialize(clientName)

答案 1 :(得分:1)

我不确定如何在.net中执行此操作,但用户输入的第一条规则不是要清理,而是要转义它。

其他用户将无法拥有“在他们的用户名中(可能不是那么常见,但在其他情况下,例如对您的问题的回复,我有一个非常合法的理由包括”)

答案 2 :(得分:1)

我确定你已经想过这个,但是.Replace()函数就像它一样简单。

deleteButton.Attributes.Add("onclick", "javascript:return confirm('Are you sure you want to delete client " + clientName.Replace("'", "&_#39" + "')"); 

答案 3 :(得分:1)

获得一点点发烧友:

    public static string ToJavascriptString(this string str)
    {
        Dictionary<string, string> replace = new Dictionary<string, string>();
        replace.Add("'", @"\'");
        replace.Keys.ToList().ForEach(s => str = str.Replace(s, replace[s]));
        return str;
    }

答案 4 :(得分:1)

SecurityElement.Escape(string s)