【发布时间】:2018-12-29 23:12:35
【问题描述】:
我有一些接收字符串的代码(其中可能有撇号或双引号)。收到字符串后,将创建一个链接以允许用户在输入中使用该字符串。
我创建了一个模型 jsfiddle here 以简化方式演示问题。在现实世界的版本中,它要复杂得多,并且不存在第一个输入和使用按钮 - 它们只是在小提琴中模拟接收到的字符串。
要对其进行测试,请在“带撇号的字符串”输入中输入一些带撇号的文本,然后单击“使用”按钮。它会在“复制的字符串”之后创建一个链接,上面写着“使用文件名”。如果单击该链接,它应该将字符串放入第二个输入中。如果没有撇号也没关系,但撇号不起作用(您可以在控制台中看到错误:SyntaxError: "" string literal contains an unescaped line break)。
如果我重写$("#usespan").html() 行并将所有" 切换为',则撇号有效,但双引号无效。
我怎样才能让它同时适用于" 和'?
谢谢!
Jsfiddle 代码 (HTML):
<p>String with apostrophe : <input id="fn"> <input type="button" value="Use" id="usefn"></p>
<p>Copied String: <span id="usespan"></span><br><br><input id="final">
Jsfiddle 代码(JS):
$("#usefn").on("click", function() {
var fn = $("#fn").val();
fn = myHtmlEntities(fn);
$("#usespan").html(' <a href="javascript:void(0)" onclick="$(\'#final\').val(\' '+fn+'\');">Use Filename</a>');
});
function myHtmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g,''');
}
【问题讨论】:
标签: javascript jquery html css webpage