将字符串中的单引号转换为转义的单引号

本文关键字:单引号 转义 转换 字符串 | 更新日期: 2023-09-27 18:35:13

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

假设我有这个字符串:

s = "John's book."

使用对象 String 中的 replace 方法,我想将其转换为:

s = "John''s book."

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

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

但是,这会导致:

"John'''s book."

将字符串中的单引号转换为转义的单引号

这样做,这样你就不必考虑它:

s = s.Replace("'", @"''");
如果

这与 ASP.NET MVC(ASP.NET MVC 5或更高版本)有关,则只是为了展示另一种可能的解决方案:

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

这允许您转义数据并将其作为 JavaScript 传递给视图。关键部分是:

HttpUtility.JavaScriptStringEncode

我有一个快速而肮脏的函数,可以在MySQL插入子句中使用它之前对其进行转义。这可能会有所帮助:

    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");
        }
    }

最简单的是

Server.HtmlEncode(varYourString);

只是为了让你知道

在这种情况下
string q = "John's book";
string s = s.Replace("'", "'''");
string t = s.Replace("'", "''''");

s 和 t 将显示相同的内容;

https://dotnetfiddle.net/OwGyHW