正则表达式和把手

Bre*_*ele 4 javascript regex model-view-controller binding handlebars.js

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

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

之前:

{label} //返回'标签'

后:

{label} //返回'标签'

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

正则表达式应该允许两个用例.任何的想法?

Thanls

Sar*_*rah 7

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

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