我想在图像标题中包含带单引号的字符串。
myTitle = "abc '' def";
document.write("<img title='" + myTitle + "' src='http://www.example.com/image.png' />")
此处,只显示子字符串abc '' def
,而不是abc
。因此,只需删除单引号后的所有内容。
由于标题实际上来自数据库,我不能只做\'
,所以我需要在title='" + myTitle + "'
转义它。
那是否有功能?
答案 0 :(得分:4)
您可以使用双引号:
myTitle = "abc '' def";
document.write('<img title="' + myTitle + '" src="http://www.example.com/image.png" />');
或逃避报价:
myTitle = "abc '' def";
document.write("<img title='" + myTitle.replace(/'/g, ''') + "' src='http://www.example.com/image.png' />");
答案 1 :(得分:0)
您可以尝试对字符串进行html-entity-encoding,如下面的答案所示:https://stackoverflow.com/a/18750001/773259
这会将您的单引号换成其unicode值'
。
答案 2 :(得分:0)
简单替换:
myTitle = "abc '' def";
myTitle = myTitle.replace(/'/g, "\\'");
document.write("<img title='" + myTitle + "' src='http://www.example.com/image.png' />")
答案 3 :(得分:0)
你需要在html代码的字符串表示中用双引号交换双引号,如下所示:
myTitle = "abc '' def";
document.write('<img title="' + myTitle + '" src="https://www.google.de/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" />')
这里是JSFiddle
这里是Diffchecker
你编写它的方式使得代码在标题字符串中的第一个单引号处制动,因为它跟随另一个单引号。
答案 4 :(得分:0)
您可以通过将所有单引号替换为其html实体来解决您的问题。
myTitle = "abc '' def";
document.write("<img title='" + myTitle.replace(/'/g, "'") + "' src='http://www.example.com/image.png' />")