我尝试标记路径以使用JavaScript的regexp提取路径变量。
我有一个表达式,它给出了允许定义变量部分的路径模板。例如:/path/{val1}/rr/{val2}
, /path/{val1}/rr/test1{val2}
或/path/{val1}/rr/test1({val2})
。
我想这样提取路径的可变部分的值:/path/myval1/rr/myval2
, /path/myval1/rr/test1myval2
或/path/myval1/rr/test1(myval2)
。要获得这样的内容:
{
var1: 'myvar1',
var2: 'myvar2'
}
我尝试使用以下regexp从路径模板中获取令牌:
(^({{1})[w/]+(}{1})$)|([!{!}w]+)
用它,我几乎有我需要的。例如,对于模板路径/path/{val1}/rr/test1({val2})
,我有以下令牌:
path
{var1}
rr
test1
{val2}
但是我想要:
/path/
{var1}
/rr/
/test1(
{val2}
)
我想我错过了什么,但我不知道是什么
像这样:
//?[^{/]*/?|{[^}]*}/g