2014年1月28日 星期二

JavaScript : 有多行內容的字串變數

在 JavaScript 中的字串變數會以一對雙引號「"」或是單引號「'」來包住,如果字串內容帶有換行字元,就必須以「\n」來表示;如果字串內容要寫在不同行間,則必須在每行的最後面加一個反斜線「\」,不然就會出現類似下面的錯誤訊息而中斷程式的執行:

Uncaught SyntaxError: Unexpected token ILLEGAL

之前都很老實的去一個個加「\n」及行末的「\」,哈!原來有底下這麼一招可以使,輕輕鬆鬆的解決困擾已久的問題。

例如我想加一個帶有多行內容的字串變數「myString」,語法如下:

var myString = function(){/*
這是第一行
第二行
333
*/}.toString().slice(14,-3);

它主要的關鍵是:

  • 把想要設定的字串內容變成某個匿名「funtion」的內容,而它又被放入「註解」中,/* ...*/ 註解可以有多行,這招真聰明!
  • 將匿名「funtion」以「toString()」轉為字串後,再將「頭」、「尾」以「slice」去掉。最後只剩下第14個字~倒數第4個字間的內容,乾淨俐落!


在 Chrome、Safari、Opera 及 IE 上測試都沒問題,不過,在舊版的 Firefox ( 3.6.28) 上,function 中的「註解」真的被註解掉了,所以只得到空字串。




參考資料




沒有留言:

張貼留言

 
© 2009. Design by Pocket