我有以下链接
<a href="#editModal" class="modal-with-form fa fa-edit" onclick="createEditPanel('/notes', '${note.getRequiredInfoFieldValue('note-title')}', '${note.getRequiredInfoFieldValue('note-title')}', ${note.getRequiredInfoFieldValue('note-text')});"></a>
${note.getRequiredInfoFieldValue('note-text')}
有时文本中会有单引号或双引号,从而导致错误。
我需要能够转义文本。
我有以下内容
<script>
var text = '${note.getRequiredInfoFieldValue('note-text')}';
text = text.replace(/\"/g,'\\"');
</script>
它可以转义字符,但简单地将文本变量放入方法中是行不通的。它是空的。
最佳答案
使用
${fn:replace(note.getRequiredInfoFieldValue('note-text'),/\"/g,'\"')}
直接在onclick内。
这样它将用转义序列字符替换单引号或双引号。
显然你需要使用以下方式导入 jSTL lib:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
- 使用
<c:out value="${note.getRequiredInfoFieldValue('note-text')}"/>
直接在 onclick 内部。
-
Use ${fn:escapeXml(note.getRequiredInfoFieldValue('note-text'))}
最推荐使用第三种方法,因为您无需手动转义特定符号。
关于javascript - 在 onclick 方法 JSP 生成的文本中转义单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44333886/