2011-02-14 179 views
2

我想使用JQ打印到我的頁面上的div。我想打印的字符串包含HTML,包括撇號和雙撇號。JQuery轉義撇號和雙撇號?

是否有插件或函數來避免這種情況,以便字符串不會破壞js變量?有可能是這樣的情況,我不能使用反斜槓來轉義輸入數據中的所有撇號和雙撇號,所以我正在尋找一個可以做到這一點的函數。

EG;

var replacement = 'This content has an apostrophe ' and a double apostrophe "'; 

$("#overwrite").text(replacement); 

TIA

+0

有可能是一個內置到jQuery中,我沒有遇到過,但我通常只寫我自己的功能,並在必要時使用它。 – Ralph 2011-02-14 00:32:15

回答

1

沒有必要逃避傳入的數據,因爲它已經是一個字符串。

您需要在JavaScript源代碼中撇開撇號和雙撇號的唯一原因是由於JavaScript引擎必須確定字符串的開始和結束位置。

例如,假設您有一個div#source包含文本"Hi there, what's up!",那麼執行$("#overwrite").text($("#source").text())是完全安全的。

+0

嗨rfw感謝這一點,我認爲我吸吮的文本將有撇號和雙撇號我需要一些相當複雜的東西,這將允許重新指定什麼字符將是字符串的開始和結束。我們在一個我正在使用的項目中使用了大量的SSI,其中有大量的HTML,它們有太多的撇號和雙撇號來手動逃脫。 – xiatica 2011-02-16 05:52:36

2

如果你想輸入一個字符串,像上面的例子那樣分配給一個變量,那麼就直接跳過它。例如,如果我知道我的數據將具有撇號,那麼我將其包裝在引號(您稱之爲雙撇號的內容)中,並使用HTML快捷方式引用",或者您可以使用反斜槓來轉義報價\"。無論哪種方式工作。所以你上面的例子就變成:

var replacement = "This content has an apostrophe ' and a double apostrophe ""; 

如果用戶在字符串中鍵入或你是從飼料中獲取數據,那麼這將是最好的使用JavaScript替換功能,以確保引號逃脫,像這樣:

var text = $("input").val().replace(/\"/g,"""); 
+0

感謝fudgey,但由於我們從平面文件中吸取大量數據,因此這種方法無法工作。 – xiatica 2011-02-16 05:56:37