国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

在JavaScript里嵌入大量字符串常量的實現方法

2019-11-20 22:33:46
字體:
來源:轉載
供稿:網友

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

復制代碼 代碼如下:

var html =
    '<div>' +
        '<p>Hello</p>' +
        '<p>World'</p>' +
    '</div>';

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

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

  所以我們寫個空函數,里面就一個/**/注釋,其中就是我們想要的常量內容。toString后加一個正則就可以提取我們想要的!

  馬上試試:

復制代碼 代碼如下:

var RES_CODE = _TEXT(function(){/*
    #include <iostream>

    int main()
    {
        std::cout << "Hello world" << std::endl;
        return 0;
    }
*/});

var RES_POEM = _TEXT(function(){/*
  更吹落,星如雨。
  寶馬雕車香滿路。
  鳳簫聲動,玉壺光轉,一夜魚龍舞。
  蛾兒雪柳黃金縷,
  笑語盈盈暗香去。
  眾里尋他千百度,
  驀然回首,那人卻在燈火闌珊處。
*/});

var RES_XML = _TEXT(function(){/*
    <projectDescription>
        <name>Hello</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
            <buildCommand>
                <name>com.adobe.flexbuilder.project.flexbuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
            <buildCommand>
                <name>com.adobe.flexbuilder.project.apollobuilder</name>
                <arguments>
                </arguments>
            </buildCommand>
        </buildSpec>
    </projectDescription>
*/});

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

OK!就是Chrome里把注釋每行前面的Tab去掉了,如果僅僅是放代碼的話問題也不大~ 當然有個前提是字符里不能出現*/

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西峡县| 黔西| 崇礼县| 娱乐| 龙门县| 息烽县| 梁山县| 莱阳市| 赣州市| 天等县| 洛川县| 沭阳县| 新宁县| 炎陵县| 赤壁市| 马边| 玛曲县| 平江县| 应用必备| 刚察县| 乡城县| 蒙阴县| 图片| 孟津县| 建宁县| 平山县| 沈阳市| 南充市| 盘锦市| 安庆市| 台江县| 呼图壁县| 玉环县| 景谷| 泾阳县| 鹿邑县| 北碚区| 嘉鱼县| 中牟县| 泗水县| 松溪县|