我必须将两个参数传递给 CallSome()
string.Format("CallSome({0},'{1}');", someId, someName);
但是 someName 不适用于这种有空间的值。喜欢
它适用于'123','name'
但不是因为这个“我的名字”它在“我的”之后给出了一个错误
我必须将两个参数传递给 CallSome()
string.Format("CallSome({0},'{1}');", someId, someName);
但是 someName 不适用于这种有空间的值。喜欢
它适用于'123','name'
但不是因为这个“我的名字”它在“我的”之后给出了一个错误
假设您使用的是 C#,并且您希望将其输出到 ASP.NET 或类似 Web 技术中的 Web 响应,那么......您的代码应该可以工作。
例如,给定someId
= 123 和someName
= "word, word":
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")';
或者,您可以转义单引号:
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\')';
尝试这个
string.Format("CallSome({0},''{1}'');", someId, someName);
您需要通过在 start 和 end 中添加额外的单引号来转义单引号。