我在dotCMS中有多种语言。语言变量可能包含单引号或双引号。 我可以通过将它们包装在引号中来访问我的javascript中的这些变量。
var text =" $ text.get(' variable_name')";
但是如果变量包含相同的引号,则js代码崩溃。 当变量包含/时,常规expretions也不起作用。 我使用es5,所以模板字符串不是一个选项。
我该如何解决这个问题?
答案 0 :(得分: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')})";