首頁  >  文章  >  web前端  >  在JavaScript裡嵌入大量字串常數的實作方法_javascript技巧

在JavaScript裡嵌入大量字串常數的實作方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:29:561085瀏覽

數量少還好,多的話就密密麻麻的一坨文字,講究美觀的文藝青年們,會用大量的字符連接符號甚至加上縮進,強制換成好幾行。例如:

複製程式碼 程式碼如下:

var html =



var html =
'
        '

Hello

'         '

World'

'

    '';

    '

這還好,要是字串裡有不少雙引號單引號,那就更麻煩了,各種轉義字符看的眼花繚亂。

  其實有個不怎麼起眼的小技巧,就能解決這個問題。大家總認為字串必須在"..."或'...'裡面,這點沒錯。但還有一個地方的字串也能當非程式碼語意保存下來,那就是一個function的toString,把整個函數的程式碼當字串輸出──其中的註解部分當然也是保留的!

  所以我們寫個空函數,裡面就一個/**/註釋,其中就是我們想要的常數內容。 toString後面加上一個正規則可以提取我們想要的!

  馬上試試: 複製程式碼

程式碼如下:

var RES_CODE = _TEXT(function()///
    #include

    int main()
    {
        std::cout    */});


var RES_POEM = _TEXT(function(){/*
  更吹落,星如雨。
  寶馬雕車香滿路。
  鰫聲,鯪聲,一夜魚轉,龍舞。 );

var RES_XML = _TEXT(function(){/*
   
        Hello

       
           
               
            >           

           
  name>
               
            
       

   
*/});

function _TEXT(wrap) {
    return wrap.toString().match(//*s([sS]*)s*//)[1];
}
alert(RES_CODE );
alert(RES_POEM);
alert(RES_XML);

OK!就是Chrome裡把註解每行前面的Tab去掉了,如果只是放程式碼的話問題也不大~ 當然有個前提是字元裡不能出現*/

值得注意的是,壓縮程式碼的時會過濾註釋,需要手動排除一部分。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn