javascript - 使用正则表达式反应路由器
问题描述
如果我的 url 路径以 a 开头/-IDNUMBER
,我希望 react-router 呈现Home
组件。例如,如果 URL 是:
/-MX9EnU6aOtENtdQxLvF
或者/-MX9F3z22XrMjlgEAHUI
它应该渲染Home
组件。我认为最好的方法是使用正则表达式(如果有更好的方法,请告诉我)。这是我尝试过的:
<Route path="/^-" component={Home} />
. 这不起作用,我尝试了其他也不起作用的变体。请让我知道如何解决这个问题。
解决方案
我想您可以尝试以下方法:
const idRegex = '([0-9a-zA-Z]*)';
...
<Route path={`/-${idRegex}`} component={Home} />
我找不到官方文档,但基本上,如果你()
在路径字符串中打开,你可以在其中包含一个 Regex 表达式。所以,我基本上写了这个简单的正则表达式,它将匹配每个数字、字母和特殊字符。
所以最后,当你添加 时path={`/-${idRegex}`}
,它会根据需要考虑一个路由器/-USERID
,并渲染正确的组件。最终的路径字符串将是/-([0-9a-zA-Z]*)
.
我希望它足够清楚,您可以将其进一步应用于其他一些情况。