【发布时间】:2012-02-01 15:46:34
【问题描述】:
我正在为我正在构建的网站使用 javascript 模板系统,但遇到了一些问题。
我正在使用以下正则表达式来匹配我的字符串中的部分:
/(\{\{(#|\^)(.*?)\?\}\}(.*?)\{\{\/(.*?)\?\}\})/
为此提供一个字符串,例如:
{{#is_user?}} The user is an user {{/user?}}
在声明“user”=true 时,显示字符串。当“is_user”设置为 false 时,不显示字符串。但是我发现这不允许嵌套这样的空间:
{{#is_user?}} The user is an user {{#has_picture?}} and has a picture{{/has_picture?}} {{/user?}}
这将导致以下结果:
The user is an user {#is_user?}} The user is an user{{/user?}}
因此意味着在 {{#is_user?}} 和 {{/has_picture?}} 之间找到了匹配,因为正则表达式只检查 {{# anystring ?}} 和 {{/ anystring? }}。
现在我的问题是,如果括号之间的两个字符串相等,是否可以说只有匹配,以便仅在 {{#stirngA?}} {{/stringA?}} 时找到匹配。
【问题讨论】:
标签: javascript regex templates template-engine