簡體   English   中英

用雙引號轉義Javascript字符串

[英]Escape Javascript String in Double Quotes

好吧,我的雙引號里有一長串

var Variable = "Really Long ...... String"

我想這樣做

var Variable = "Really
                Long
                ...... 
                String"

目前,我正在這樣做

var Variable = "Really\n\
                Long\n\
                ......\n\
                String"

它可以在所有瀏覽器上正常工作。 但這是正確的方法嗎?

我認為使用加號可能會更有效。

var Variable = "Really " +
                "Long " +
                "...... " +
                "String";

在上面的示例中,例如,您如何知道單詞“ Long”前有多少空格? 我不希望在瀏覽器之間保持一致。

我的理解是,使用加號來連接字符串同樣有效……JavaScript解析器足夠聰明,可以像示例一樣處理該方法。

我建議只加入它。

var str = [
   'This is a very long piece ',
   'of string that I\'m going to join together ',
   'right about now.'
].join('')

您可以使用數組並連接值。 但是我不確定性能。 如果您使用字符串連接,引擎可以(很可能會)對其進行優化(這意味着它在解析代碼時會生成一個字符串),但是引擎是否很聰明以發現與數組的簡單連接。不要這樣

var Variable = ["Really ",
                "Long ",
                "...... ",
                "String"].join('');

JavaScript不像PHP那樣支持“此處文檔”,因此您做得更好。 但是,您將在各行的開頭加上很多空格(如果您按此處顯示的方式縮進代碼)。 為了避免這種情況,請使用字符串串聯:

var Variable = "Really\n" +
"Long\n" +
"String";

或數組聯接(如meder建議):

var Variable = [
    "Really",
    "Long",
    "String"
].join('\n');

LineContinuation是ECMA-262第5版(第7.8.4節)的新功能。 如果您絕對必須遵守ECMAScript 3,請避免使用它,並使用+.join('')或其他方法。 但是正如您已經提到的那樣,主要的瀏覽器(甚至是IE 6)都支持此特殊功能[1] ,除了有編碼約定外,我沒有其他理由避免使用此功能。

(參考:[1] http://shwup.blogspot.com/2009/05/line-continuation-in-javascript.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM