如何使用正则表达式匹配nuxtjs,vue中路由中的特定单词?

Posted

技术标签:

【中文标题】如何使用正则表达式匹配nuxtjs,vue中路由中的特定单词?【英文标题】:How to use regex to match specific words in a route in nuxtjs, vue? 【发布时间】:2019-09-01 06:27:22 【问题描述】:

我有这条路线/test/a-vs-b

只有在其中找到-vs- 时,我才会尝试捕捉这条路线。

我尝试了一些正则表达式变体,但似乎没有任何效果

routes.push(
    name: 'test',
    path: '/test/:page((.*)-vs-(.*))',
    component: resolve(__dirname, 'test/b.vue'),
);

有什么想法吗?

【问题讨论】:

我认为我的问题的答案可以澄清一些事情:***.com/questions/59035905/… 【参考方案1】:

VueRouter 使用 path-to-regexp 库,apparently doesn't handle defining capturing groups with parenthesis 就像您正在尝试做的那样。


我只需删除.*s 周围的括号即可使其工作。

routes.push(
    name: 'test',
    path: '/test/:page(.*-vs-.*)',
    component: resolve(__dirname, 'test/b.vue'),
);

【讨论】:

该死..我也尝试过..但现在可以了..我想我没有重建或其他什么 我认为他们只是检查了 git 上的第一个示例,他们在正则表达式中有 () capturing group @CodeManiac 我认为您对path-to-regexp 的工作方式感到困惑。请参阅我链接到的未解决问题。

以上是关于如何使用正则表达式匹配nuxtjs,vue中路由中的特定单词?的主要内容,如果未能解决你的问题,请参考以下文章

nuxtjs中使用路由守卫

动态路由 NuxtJS

nginx 路由配置

Django 2.0 的路由如何实现正则表达式

nuxtjs中修改head及vuex的使用

Flask自定义转换器,实现路由匹配正则表达式参数