匹配AngularJS ui-router中的一个或另一个单词

hel*_*on3 7 regex angularjs

使用AngularJS + ui-router,我需要将一个url与两个单词中的一个匹配:

/oneWord/.../secondWord...

路由和控制器几乎相同,所以我想避免重复代码.

但是,使用我习惯的正则表达式,在正则表达式应该起作用的地方不起作用:

url: '/{type:(oneWord|secondWord)}/:group',

但是,它会抛出一个错误:

Unbalanced capture group in route '/{type:(oneWord|secondWord)}/:group'

一个正则表达式应该工作,因为这工作正常:

url: "/{page:[0-9]{1,8}}"

我知道这(oneWord|secondWord)是一个有效的正则表达式,所以我错过了什么?

rtc*_*rry 23

根据文档,您不应该在正则表达式模式中使用捕获括号.

这应该工作: url: '/{type:(?:oneWord|secondWord)}/:group'