我有两个参数传递给CallSome()string.Format不适用于字符串行类型参数?
string.Format("CallSome({0},'{1}');", someId, someName);
但someName没有为这种由具有空间值的工作。像
其工作的 '123', '名'
但不是这个'我的名,它给出了在此之后“错误我
我有两个参数传递给CallSome()string.Format不适用于字符串行类型参数?
string.Format("CallSome({0},'{1}');", someId, someName);
但someName没有为这种由具有空间值的工作。像
其工作的 '123', '名'
但不是这个'我的名,它给出了在此之后“错误我
试试这个
string.Format(“CallSome({0},''{1}'');”,someId,someName);
您可以通过需要逃逸单引号把额外的单引号在开始和结束。
假设您正在使用C#并且希望将其输出到ASP.NET或类似Web技术中的Web响应,那么...您的代码应该可以工作。
例如,给定someId
= 123和someName
=“字,词”:
CallSome(123,'word, word');
只是,检查您在网页中所得到的输出代码,它将揭示真相。
除非它被插在它是由单引号包围的地方。
例如,给定someId
= 123和someName
=“字,词”:
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
=“字”单词”:
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\')';
你粘贴了'CallSome()'函数的代码? – asgs
不可能,除非我们正在处理一个撇号... – naveen
您的JavaScript看起来像C#,我想你错过了一个标记。这会去评估吗?传说说它是邪恶的。 – Theraot