【问题标题】:Escape double quote in velocity以速度转义双引号
【发布时间】:2023-03-17 19:21:01
【问题描述】:

我使用velocity 1.7,模板如下。

var jsCode = "${code}";
eval(jsCode);

如果代码是“var id = 123”,那么实际的js代码是

var jsCode = "var id = 123";
eval(jsCode);

没有问题。

但是,如果代码是"var name="lucy"",那么实际的js代码是

var jsCode = "var name = "lucy"";
eval(jsCode);

显然有语法错误。

如果代码是 var jsonStr = "{\"id\":1, \"name\":\"lucy\"}",问题就更严重了。

代码未知,可以是任何东西。

如何解决这个问题?

【问题讨论】:

  • @user7294900 速度版本是 1.7

标签: velocity


【解决方案1】:

Velocity 也在velocity-tools 项目中开发了EscapeTool,该项目有不同的选项

在 Velocity 模板中处理转义的工具。它提供了对 Velocity、Java、JavaScript、HTML、HTTP、XML 和 SQL 的输出进行转义的方法

在你的情况下,它是 javascript,所以使用 $esc.javascript( 示例:

$javascript -> 他没有说,“停下!”

$esc.javascript($javascript) -> 他没有说,“停!”

【讨论】:

    猜你喜欢
    • 2020-11-26
    • 1970-01-01
    • 2013-06-17
    • 2013-08-09
    • 2021-09-24
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    相关资源
    最近更新 更多