web-dev-qa-db-ja.com

文字列内の単一引用符をエスケープされた単一引用符に変換する

これを聞くのは苦痛ですが、何らかの理由でこれを機能させることができませんでした(その日の遅く、そうです、それは私の言い訳です)。

この文字列があるとしましょう:

s = "John's book."

オブジェクトStringのreplaceメソッドを使用して、これを次のように変換します。

s = "John\'s book."

私はこのコードが私に欲しいものを与えると期待していたでしょう:

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

ただし、結果は次のとおりです。

"John\\'s book."
33

あなたがそれについて考える必要がないようにこれをしてください:

s = s.Replace("'", @"\'");
67
BeemerGuy

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

これがMVC.NET(MVC5 +)に関係する場合、別の可能な解決策を示すためだけに:

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

これにより、エスケープして、データをJavaScriptとしてビューに渡すことができます。重要な部分は次のとおりです。

HttpUtility.JavaScriptStringEncode
3
Richard Duerr

最も簡単なものは

Server.HtmlEncode(varYourString);