2つのパラメーターをCallSome()に渡す必要があります
string.Format("CallSome({0},'{1}');", someId, someName);
しかし、someNameは、スペースがあるこの種の値に対しては機能しませんでした。お気に入り
'123'、'name'で動作します
しかし、これは「私の名前」ではありません。
2つのパラメーターをCallSome()に渡す必要があります
string.Format("CallSome({0},'{1}');", someId, someName);
しかし、someNameは、スペースがあるこの種の値に対しては機能しませんでした。お気に入り
'123'、'name'で動作します
しかし、これは「私の名前」ではありません。
これを試して
string.Format( "CallSome({0}、'' {1}'');"、someId、someName);
startとendに余分な一重引用符を入れて、一重引用符をエスケープする必要があります。
C# を使用していて、これを ASP.NET または同様の Web テクノロジで Web 応答に出力したいと仮定すると、コードは機能するはずです。
たとえば、someId
= 123 とsomeName
= "word, word" の場合:
CallSome(123,'word, word');
Web ページで取得している出力コードを確認するだけで、真実が明らかになります。
一重引用符で囲まれた場所に挿入されている場合を除きます。
たとえば、someId
= 123 とsomeName
= "word, word" の場合:
var something = 'CallSome(123, 'word, word')';
したがって、ブラウザに関する限り、最初の一重引用符はテキストの終わりのように見えます。その場合、次のように二重引用符を使用する必要があります。
var something = "CallSome(123, 'word, word')";
またはこれ:
var something = 'CallSome(123, "word, word")';
または、一重引用符をエスケープできます。
var something = 'CallSome(123, \'word, word\')';
引数に引用符がない限り。
たとえば、someId
= 123 とsomeName
= "word' word" を指定すると、次のようになります。
var something = 'CallSome(123, 'word' word')';
繰り返しになりますが、ブラウザーに関する限り、最初の一重引用符はテキストの終わりのように見えます。その場合は、引用符を一方向にエスケープする必要があるため、もう少し複雑です。
var something = "CallSome(123, 'word\' word')";
または別の:
var something = 'CallSome(123, "word\' word")';
改行、javascript コメントがない限り、または引数に他に何があるかわかりません。
それらを持っていないだけです!
さて、C# では引用符をエスケープする必要があります。二重引用符を出力するには、次のようにします。
string.Format("CallSome({0},\"{1}\");", someId, someName);
それは与える:
CallSome(123,"word, word");
一方、一重引用符を本当に使用する必要がある場合 (バグを考えるとそうは思わない)、出力 JavaScript でそれらをエスケープする必要があります。
string.Format("CallSome({0},\\'{1}\\');", someId, someName);
それは与える:
CallSome(123, \'word, word\');
上記の例のように、引用符で囲まれた文字列の一部であれば問題ありません。
var something = 'CallSome(123, \'word, word\')';