代码之家  ›  专栏  ›  技术社区  ›  Mark Kadlec

知道清除.NET中要在javascript中使用的字符串的好方法吗?

  •  1
  • Mark Kadlec  · 技术社区  · 15 年前

    我正在用我的ASP.NET代码创建一条javascript确认消息:

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

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

    有人知道 好,简单 如何清除变量“clientname”,以便在javascript中安全地使用它?

    谢谢!

    5 回复  |  直到 15 年前
        1
  •  11
  •   kwcto    15 年前

    new javascriptserializer().serialize(clientname)

        2
  •  1
  •   Erik    15 年前

    我不确定如何在.NET中执行,但使用用户输入的第一条规则不是清除,而是清除 逃跑 它。

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

        3
  •  1
  •   David    15 年前

    我相信您已经考虑过了,但是.replace()函数是最简单的。

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

    要想更进一步:

        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;
        }
    
        5
  •  1
  •   Nicolas Dorier    15 年前
    SecurityElement.Escape(string s)