我需要一个 c# 中的正则表达式,它将转义字符串文字中的双引号。所以如果我有这个字符串:““这个”怎么样,“那个”怎么样”。我将能够在 javascript 中毫无错误地使用它。因为我将此文字作为 js var 写入页面。
编辑:我会尝试解释更多有关该问题的信息。 我这样写消息到页面:
string UserMsg = GetMessageText(999);
StringBuilder script = new StringBuilder();
script.AppendFormat("var UserMsg =\"{0}\";{1}", UserMsg, Environment.NewLine);
ScriptManager.RegisterClientScriptBlock(this, GetType(), "scriptparams", script.ToString(),true);
现在假设消息 999 是这样的:“我们在您的详细信息中发现了一个‘问题’”。 这会导致 js 错误。
最佳答案
您不应使用正则表达式将 C# 字符串转义为 JavaScript 友好/安全的格式。相反,假设您使用的是 .NET 4,则可以使用 HttpUtility.JavaScriptStringEncode为您处理单引号和双引号是重载的。
例如:
string UserMsg = GetMessageText(999);
StringBuilder script = new StringBuilder();
script.AppendFormat("var UserMsg =\"{0}\";{1}", HttpUtility.JavaScriptStringEncode(UserMsg), Environment.NewLine);
ScriptManager.RegisterClientScriptBlock(this, GetType(), "scriptparams", script.ToString(),true);
如果将 UserMsg
设置为“我们在您的详细信息中发现了一个‘问题’”,则会输出以下内容:
var UserMsg ="we found a \"problem\" in your details";
关于c# - 在 C# 中转义字符串文字中的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8293707/