【问题标题】:How to deal with sigle quote in javascript in jsp page?如何处理jsp页面中javascript中的单引号?
【发布时间】:2012-01-06 12:22:48
【问题描述】:
onclick= "_deleteWPSchemeData(${viewWPMasterGrid.id}, '${viewWPMasterGrid.name}')"

${viewWPMasterGrid.name} 向我返回一个字符串(例如 W.P.WINT OFF ALL'10),它通常具有单引号字符,因此从调用 javascript 方法中我根本没有得到第二个参数。如何处理问题?

【问题讨论】:

标签: javascript jsp quote


【解决方案1】:

当动态字符串可以放在 JavaScript 字符串文字中时,它应该是 JS 转义的。就像将动态字符串放在 HTML 页面中一样,它是 HTML 转义的。

使用 commons-lang StringEscapeUtils.escapeECMAScript(或 escapeJavaScript,取决于版本)来转义字符串。您可以直接从 JSP 创建一个非常简单的 EL 函数来执行此操作。

请注意,单引号可能会出现问题,但双引号、标签、EOL、反斜杠也可能会出现问题,这些都必须在 JS 字符串文字中进行转义。

【讨论】:

    【解决方案2】:

    看起来您可以先将第二个参数拆分为自己的变量。如果我正确理解了您的问题。

    var viewWPMasterGridName = "${viewWPMasterGrid.name}";
    onclick = "_deleteWPSchemeData(${viewWPMasterGrid.id},'" + viewWPMasterGridName + "')";
    

    【讨论】:

      【解决方案3】:

      使用'${viewWPMasterGrid.name.replaceAll("'", "\'")}'

      【讨论】:

      • 在 JSP EL 中不能使用 replaceAll。
      【解决方案4】:

      试试这个,

      var name = "${viewWPMasterGrid.name}".replace(/'/g,"\\'");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-10
        • 2016-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-01
        相关资源
        最近更新 更多