鼓励您以[template.JS
类型存储安全的Javascript:
JS字符串类型
JS封装了一个已知的安全EcmaScript5表达式,例如
template.JS
。模板作者负责确保类型化表达式不会破坏预期的优先级并且没有像传递一个像“ {foo:bar()} \ n'foo'”这样的表达式,两者都是有效的表达式和含义完全不同的有效程序。
因此,您唯一需要对代码进行的更改是:
(x + y * z())
除了@ANisus答案之外的一小部分。还有一个类似的HTML(和CSS)包装器。每当您尝试将HTML字符串传递到模板中时,它都会被引用。因此,为了正确呈现安全的HTML,请使用:
type Var struct {
Name template.JS
Value template.JS
}