Javascript中拼接大量字符串的方法

字號(hào):


    在php、python中都有heredoc方式的字符串定義方法:
    php:
    代碼如下:
    $sql=<<<EOD
    select *
    from pages
    where pagename='$pn'
    EOD;
    python:
    代碼如下:
    print """
    This is an example of a string in the heredoc syntax.
    This text can span multiple lines
    """
    js拼接大量字符串沒(méi)個(gè)heredoc風(fēng)格的操作符是比較繁瑣的:
    拼接方式一:
    代碼如下:
    var str = "\
    Here is line one \
    And line two \
    Finally, line three! \
    ";
    alert(str);
    拼接方式二:
    代碼如下:
    var __template =
    '<tr>'+
    '<td>#salarySN#</td>'+
    '<td>#name#</td>'+
    '<td>#TDR_NAME#</td>'+
    '<td>#TSD_NAME#</td>'+
    '<td>#WORK_STATUS#</td>'+
    '<td>#isleader_display#</td>'+
    '<td>'
    +'<a href="javascript:void(-1)">設(shè)置角色</a>'
    +'</td></tr>';
    JS字符串需要打破原字符串風(fēng)格,每行處理,這點(diǎn)有點(diǎn)讓人受不了。
    給個(gè)解決方案:
    代碼如下:
    function aHereDoc() {/*
    Hello, World!
    I am a JavaScript here document.
    Use the 'hereDoc' function to extract me.
    */}
    function hereDoc(func) {
    return func.toString().split(/\n/).slice(1, -1).join('\n');
    }
    console.log(hereDoc(aHereDoc));
    利用func.toString()獲取需要批量處理的字符串,利用split(/\n/).slice(1, -1)去掉首尾兩行函數(shù)定義的代碼,重新組裝即可。