2011-06-01 34 views
1

輸出有效的JavaScript我使用Java 6,我想爲一個JavaScript變量輸出代碼...從Java

    String jsValue = escapeForJS(value); 
        String expression = "storedVars['myVar'] = \"" + jsValue + "\";"; 

有什麼標準,將做到這一點?我想出了我自己的 函數,但寧願使用一些嘗試和真實的東西。

/* creates a JS expression that can be used within quotes. */ 
    private String escapeForJS(String value) { 
      value = value.replace("\n", "\\n"); 
      value = value.replace("\r", "\\r"); 
      value = value.replace("\"", "\\\""); 
      return value; 
    } 
  • 戴夫
+0

你可能想逃避\\也\\。 – 2011-06-01 17:13:45

+0

您還必須考慮嵌入的反斜槓,以及關於7位範圍以外的Unicode字符以及有關非打印控制字符的問題。 – Pointy 2011-06-01 17:13:59

回答

0

使用的JSONObject,應該做的正是你需要的。

+0

但我創建的Javascript變量不是一個對象 - 它只是一個字符串。我如何使用JsonObject來做我需要的? – Dave 2011-06-01 18:42:56

0

如果您很高興擁有JSON格式的變量,則可以使用JsonObject。

否則,除了多行字符串外,沒有任何理由可以轉義除雙引號以外的任何內容,該行的末尾爲符號\

var multilineString = "This is a \ 
         multi-line string" 

並且要小心單引號和雙引號,Javascript也可以使用。