У меня есть некоторый код, который получает строку (в которой может быть апостроф или двойная кавычка).После получения строки создается ссылка, позволяющая пользователю использовать строку во входных данных.
Я создал макет jsfiddle здесь , чтобы продемонстрировать проблему в упрощенном виде.В реальной версии это намного сложнее, и первая кнопка ввода и использования не существует - они только в скрипке для имитации полученной строки.
Чтобы проверить это, введите текст сапостроф в поле ввода «Строка с апострофом» и нажмите кнопку «Использовать».После «Скопированная строка» будет создана ссылка «Использовать имя файла».Если вы щелкнете эту ссылку, она должна поместить строку во второй вход.Если апострофов нет, это нормально, но апострофы просто не будут работать (вы можете увидеть ошибку в консоли: SyntaxError: "" string literal contains an unescaped line break
).
Если я переписываю строку $("#usespan").html()
и переключаю все "
to '
, тогда апостроф работает, а двойная кавычка - нет.
Как заставить его работать как для "
, так и для '
?
Спасибо!
Код 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,''');
}