我有兩個參數傳遞給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