1. 程式人生 > >String.Format 源字串包含大括號的小問題

String.Format 源字串包含大括號的小問題

在使用String.Format()的過程中,一直沒有遇到這種型別的問題,直到在寫一個小sample的過程中,需要動態生成一段javascript程式碼並且通過ScriptManager.RegisterCliemtScriptBlock方法將其註冊到前臺,這裡使用String.Format來區分動態和靜態部分,並且生成最終的指令碼程式碼。

在程式設計中發現帶有“{”和“}”符號的指令碼程式碼在String.format()過程中會報錯,提示輸入字串不正確。反覆檢查了javascript,並沒有什麼可疑的地方。後來通過查詢一些資料,由於String.Format()通過檢測“{”,“}”符號來判斷,需要引數字串插入的位置,如果你繼續在源字串中使用這個字元時,可能造成混淆(你可以將其當做是關鍵字),就像你需要在字串中加入雙引號時,同樣需要使用轉義字元。 所以在實際開發中,你需要吧”{“和”}“字元以”{{“和”}}“代替。

很小的一個問題,可能是個人程式設計經驗不足,貽笑大方,這裡寫下來作為自己的提醒。

例子:

  1. public static string Script = @"function Yes() {{  
  2.           var back = document.getElementById('wholePage');  
  3.           back.parentNode.removeChild(back);  
  4.           var message = document.getElementById('messageBox');  
  5.           message.parentNode.removeChild(message);{0}}}”;  

另外一個, 如果你的字串中含有引號,需要額外再加上一個引號才可以正常顯示,即“”代替”, 例如:

string script="function A() {var text=""""}";  

通過RegisterCliemtScriptBlock方法可以註冊為function A() {var text="";}