首页 > 解决方案 > 使用正则表达式反应路由器

问题描述

如果我的 url 路径以 a 开头/-IDNUMBER,我希望 react-router 呈现Home组件。例如,如果 URL 是:

/-MX9EnU6aOtENtdQxLvF或者/-MX9F3z22XrMjlgEAHUI它应该渲染Home组件。我认为最好的方法是使用正则表达式(如果有更好的方法,请告诉我)。这是我尝试过的:

<Route path="/^-" component={Home} />. 这不起作用,我尝试了其他也不起作用的变体。请让我知道如何解决这个问题。

标签: javascriptregexreact-router

解决方案


我想您可以尝试以下方法:

const idRegex = '([0-9a-zA-Z]*)';

...

<Route path={`/-${idRegex}`} component={Home} />

我找不到官方文档,但基本上,如果你()在路径字符串中打开,你可以在其中包含一个 Regex 表达式。所以,我基本上写了这个简单的正则表达式,它将匹配每个数字、字母和特殊字符。

所以最后,当你添加 时path={`/-${idRegex}`},它会根据需要考虑一个路由器/-USERID,并渲染正确的组件。最终的路径字符串将是/-([0-9a-zA-Z]*).

我希望它足够清楚,您可以将其进一步应用于其他一些情况。


推荐阅读