javascript无效的正则expression式:无与伦比的')'

我刚刚在我的项目上添加了一个pipe理面板钩子。 当我尝试提起帆时遇到了这个错误:

warn: Sails' built-in layout support only works with the `ejs`, `handlebars`, `ractive` view engines. warn: You're using `jade`. warn: Ignoring `sails.config.views.layout`... 

和这个错误:

 SyntaxError: Invalid regular expression: /^\admin\(.*)\/?$/: Unmatched ')' 

config / view.js引擎设置为jade,布局为false。

如果你正在寻找一个以admin开头的string,那么随后是任意数量的任何字符,最后是可选的/ ,使用

 /^admin(.*?)\/?$/ 

请参阅正则expression式演示

当你逃离一个特殊的angular色(像()在这里)他们被视为文字,因此,你的正则expression式变得腐败。 我也不相信你想匹配一个\a (匹配的铃声字符)。 如果你打算匹配一个\ ,把它加倍:

 /^\\admin(.*?)\/?$/ 

看另一个演示

请注意,如果您使用(.*)贪婪匹配,您还将捕获最后一个可选的/ 。 如果您不想捕获它(请参阅左边的regex101演示中捕获的文本),请使用懒惰匹配与*?

\是一个转义字符,所以它逃脱了后面的字符。 如果你想匹配一个\ ,你需要加倍你\\

 /^\\admin\\(.*)\/?$/: 

您正在转义左括号,导致右括号无法匹配。 鉴于你的模式,它应该是/^\admin(.*)\/?$/