正则表达式和把手

时间:2013-12-04 20:02:07

标签: javascript regex model-view-controller binding handlebars.js

我目前正在处理一组组件(http://github.com/bredele),您可以组装这些组件以获得与某些JavaScript框架中相同的功能,例如Olives.js,Canjs或Angular。

其中一个组件允许您将实时dom绑定到带有把手的对象。我使用正则表达式(/ {([^}] +)} / g)仅匹配简单的把手。我想匹配双把手如下:

之前:

{label} //返回'标签'

后:

{label} //返回'标签'

{{label}} //返回'{label}'

正则表达式应该允许两个用例。有什么想法吗?

Thanls

1 个答案:

答案 0 :(得分:7)

/{([^{}]+)}/g应该有您描述的行为:

"cat dog".replace(/{([^{}]+)}/g, "$1") => "cat dog"
"{cat} {dog}".replace(/{([^{}]+)}/g, "$1") => "cat dog"
"{{cat}} {{dog}}".replace(/{([^{}]+)}/g, "$1") => "{cat} {dog}"