如何使用正则表达式来约束ReactJS路由

时间:2018-10-19 14:49:54

标签: javascript regex reactjs express react-router

Regex: match everything but中所述,为了匹配除字符串以外的所有内容,您可以使用^(?!foo$).*

如此处所示 https://regex101.com/r/9khSXB/2

但是当在ReactJS路由中专门使用https://www.npmjs.com/package/path-to-regexp时这不起作用(错误->无效路径)

<R.Route path="/^(?!\/whatsmyname$).*" render={() => <div>works!</div>} />

(也在此处http://forbeslindesay.github.io/express-route-tester/中看到)

如何以节点友好的样式编写此正则表达式?

更新:这确实有效,您需要大括号

<R.Route path={/^\/(?!whatsmyname$).*/} render={() => <div>works!</div>} />

1 个答案:

答案 0 :(得分:1)

我需要大括号

<R.Route path={/^\/(?!whatsmyname$).*/} render={() => <div>works!</div>} />