Javascript Vue路由和正则表达式模式
我正在使用Vue,最近引入了一个带有参数的路由Javascript Vue路由和正则表达式模式,javascript,vue.js,vue-router,Javascript,Vue.js,Vue Router,我正在使用Vue,最近引入了一个带有参数的路由 const routes = [ { path: "/:lang(^$|^es$|^pt$|^cn$)", name: "Home", component: Page, }, { path: "/privacy", name: "Privacy", component: Privacy, }, { path: "*", name: "NotFound", c
const routes = [
{
path: "/:lang(^$|^es$|^pt$|^cn$)",
name: "Home",
component: Page,
},
{
path: "/privacy",
name: "Privacy",
component: Privacy,
},
{
path: "*",
name: "NotFound",
component: NotFound,
}
];
我希望在满足以下条件之一时触发路由
我尝试了各种各样的方法使它在Vue中工作,但到目前为止没有任何效果。我相信您需要的方法是: 路径:/:lang(| es | pt | cn), 这里有一个路由测试仪,它使用与Vue相同的库: 确保您是针对regexp的
路径进行测试的
0.1.7
问题是整个路径被转换为RegExp,而不仅仅是括号中的位。所以你的
^
永远不会匹配任何东西。尝试将原始路径放入测试工具中,查看它是如何编译的。生成的RegExp已经包含它自己的^
和$
,但它们与整个路径相关,而不仅仅是您试图匹配的参数。嗨,这绝对是一个开始,它不允许参数为空<代码>路径:“/:lang(es | pt | cn)?”是我现在使用的-添加?但最后,它是可选的。我不知道regex和?可以组合。@NorbertHüthmayr我建议的路径应该允许空值。我自己在一个Vue应用程序中尝试过,它似乎工作得很好。注意es
前面的
。