[英]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,'"') + '" />';
}
这将替换所有引号,您最终会使用双引号,并且它们以有效的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.