【问题标题】:Escape single quote with JavaScript使用 JavaScript 转义单引号
【发布时间】:2012-07-18 08:30:27
【问题描述】:

我知道在 HTML 中转义特殊字符。

但是,我仍然在问这个问题,因为我遇到了一种情况。

我有一个 JSP,其中不允许对输入进行验证。用户正在输入特殊字符进行测试。

输入字符串:

'#@$%

当我从数据库中显示时,我正在使用

<%= StringEscapeUtils.escapeHtml(map[i].get("text").toString())%>

其中“map”是一个 Hashmap 数组。这很好用。

当我需要将此字符串传递给 JavaScript 时,问题就出现了

<input type="Button"
onclick="onEdit('<%= StringEscapeUtils.escapeHtml(map[i].get("text").toString())%>',
'<%= strShortCut%>','<%= map[i].get("uid")%>')" value="Edit">

字符串变为''#@$%'

如何转义单引号?

【问题讨论】:

标签: javascript jsp escaping


【解决方案1】:

如果您使用 Java,也许您可​​以在 Java 中执行以下操作。

import org.apache.commons.lang.StringEscapeUtils;
...

String result = StringEscapeUtils.escapeJavaScript(jsString);

【讨论】:

  • 这如何回答这个问题?
【解决方案2】:

只需在每个单引号前加上反斜杠即可。如下所示: StringEscapeUtils.escapeHtml(map[i].get("text").toString()).replace("\'","\\'")

但是您的问题不仅在于单引号。还有双引号 (") 和反斜杠本身 (\)。

使用与之前相同的技术。你也可以使用regular expressions,不过我给你展示了最简单的方法。

要检查转义字符,请查看 URL http://docs.oracle.com/javase/tutorial/java/data/characters.html

【讨论】:

    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2019-11-29
    • 2015-01-10
    相关资源
    最近更新 更多