-1

我必须将两个参数传递给 CallSome()

string.Format("CallSome({0},'{1}');", someId, someName);

但是 someName 不适用于这种有空间的值。喜欢

它适用于'123','name'

但不是因为这个“我的名字”它在“我的”之后给出了一个错误

4

2 回答 2

0

假设您使用的是 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\')';
于 2012-10-30T07:45:43.333 回答
0

尝试这个

string.Format("CallSome({0},''{1}'');", someId, someName);

您需要通过在 start 和 end 中添加额外的单引号来转义引号

于 2012-10-30T07:30:38.107 回答