43

问这个让我很痛苦,但是,由于某种原因,我无法让它发挥作用(现在已经很晚了,是的,这是我的借口)。

假设我有这个字符串:

s = "John's book."

使用replace对象字符串中的方法,我想把它变成这样:

s = "John\'s book."

我本来希望这段代码能给我想要的东西:

s = s.Replace("'", "\\'")

但是,这导致:

"John\\'s book."
4

4 回答 4

84

这样做是为了你不必考虑它:

s = s.Replace("'", @"\'");
于 2012-05-23T22:13:09.863 回答
7

如果这与 MVC.NET (MVC5+) 相关,只是为了展示另一种可能的解决方案:

var data= JSON.parse('@Html.Raw(HttpUtility.JavaScriptStringEncode(JsonConvert.SerializeObject(Model.memberObj)))');

这使您可以转义并将数据作为 JavaScript 传递给视图。关键部分是:

HttpUtility.JavaScriptStringEncode
于 2018-01-02T22:19:29.223 回答
4

在 mysql insert 子句中使用之前,我有一个快速而肮脏的函数来转义文本,这可能会有所帮助:

    public static string MySqlEscape(Object usString)
    {
        if (usString is DBNull)
        {
            return "";
        }
        else
        {
            string sample = Convert.ToString(usString);
            return Regex.Replace(sample, @"[\r\n\x00\x1a\\'""]", @"\$0");
        }
    }
于 2012-05-23T22:27:23.063 回答
3

最简单的一个是

Server.HtmlEncode(varYourString);
于 2016-06-30T10:39:07.947 回答