我想用JQ打印到我页面上的div。我想要打印的字符串包含HTML,包括撇号和双撇号。
是否有一个插件或函数来逃避这个,以便字符串不会破坏js变量?可能存在这样的情况:我无法使用反斜杠转义传入数据中的所有撇号和双撇号,因此我正在寻找可以执行此操作的函数。
EG;
var replacement = 'This content has an apostrophe ' and a double apostrophe "';
$("#overwrite").text(replacement);
TIA
答案 0 :(得分:2)
如果你想输入一个分配给变量的字符串,就像上面的例子中那样,那么就自己逃避吧。
例如,如果我知道我的数据将有撇号,那么我将其用引号括起来(你称之为双撇号)并使用引号"
的HTML快捷方式,或者你可以使用反斜杠来逃避引用\"
。无论哪种方式都有效。所以上面的例子将成为:
var replacement = "This content has an apostrophe ' and a double apostrophe "";
如果用户输入字符串或者您正在从Feed中获取数据,那么最好使用javascript替换函数来确保引号被转义,如下所示:
var text = $("input").val().replace(/\"/g,""");
答案 1 :(得分:1)
无需转义传入数据,因为它已经是一个字符串。
你需要在JavaScript源代码中转义撇号和双撇号的唯一原因是JavaScript引擎必须确定字符串的开始和结束位置。
例如,假设您有div#source
包含文字"Hi there, what's up!"
,则$("#overwrite").text($("#source").text())
完全安全。