簡體   English   中英

JavaScript:在HTML中轉義雙引號

[英]JavaScript: Escaping double quotes in HTML

如果它包含雙引號,如何防止下面的images[i].title打破HTML?

for (i=0; i<=images.length-1; i++) {
    gallery += '<img width="250" height="250" src="' +  images[i].src + '" title="' + images[i].title + '" />';
}

因為在我看來似乎沒有人能得到正確答案:

for (i=0; i<=images.length-1; i++) {
    gallery += '<img width="250" height="250" src="' +  images[i].src +
               '" title="' + images[i].title.replace(/\"/g,'&quot;') + '" />';
}

這將替換所有引號,您最終會使用雙引號,並且它們以有效的HTML格式表示。

您可以使用replace()方法來轉義雙引號:

for (var i = 0; i < images.length; ++i) {
    gallery += '<img width="250" height="250" src="' + images[i].src +
               '" title="' + images[i].title.replace(/\"/g, '\\"') + '" />';
}

結果將是一個有效的JavaScript字符串,但它不能用作HTML標記,因為HTML解析器不理解反斜杠轉義。 您必須在圖像標題中用單引號替換雙引號字符:

for (var i = 0; i < images.length; ++i) {
    gallery += '<img width="250" height="250" src="' + images[i].src +
               '" title="' + images[i].title.replace(/\"/g, "'") + '" />';
}

或者反轉標記中的報價類型:

for (var i = 0; i < images.length; ++i) {
    gallery += "<img width='250' height='250' src='" + images[i].src +
               "' title='" + images[i].title + "' />";
}
var_name.replace(/\"/gi, '%22');

這就是你要找的那個。 即使您的顏色在Visual Studio中看起來“關閉”。

\\逃脫以下引用。

gi替換所有事件。

您可以在標題字符串上調用replace:

for ( i=0;i<=images.length-1;i++ ){
    gallery += '<img width="250" height="250" src="' +  images[i].src + '" title="' + images[i].title.replace('"',"'") + '" />';
}

暫無
暫無

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

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