1

我在 dotCMS 中有多种语言。语言变量可能包含单引号或双引号。我可以通过将它们用引号括起来来访问我的 javascript 中的这些变量。

var text = "$text.get('variable_name')";

但是如果变量包含相同的引号,js 代码就会崩溃。当变量包含 / 时,正则表达式也不起作用。我使用 es5,所以模板字符串不是一个选项。

我怎么解决这个问题?

4

1 回答 1

2

所以 ${text.get('variable_name') 只返回一个 java.lang.String ,这意味着您可以访问所有 string.replace() 和 string.replaceAll() 方法。下面是一个(未经测试的)示例。

var text = "${text.get('variable_name').replace("\"","\\\")}";

dotCMS 还提供了一个 javascript-ify 实用程序,例如:

var text = "$UtilMethods.javascriptify(${text.get('variable_name')})";
于 2017-08-21T13:23:48.450 回答