Regex соответствует всему, кроме нескольких путей - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь создать шаблон, который соответствует всем путям URL, кроме '/' или '/ en' или '/ en /' или '/ es' или '/ es /'

я пробовал некоторые, но похоже, есть особый способ заставить его работать с vue роутером:

routes.push({
    name: 'test',
    path: '/(myregexpattern)',
    component: resolve(__dirname, 'test/b.vue'),
});

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете использовать отрицательный прогноз:

path : '/((?!en\/?$|es\/?$).+)'

Протестируйте его с помощью path-to-regexp , который vue -рутер использует для анализа пути.

пример: https://jsfiddle.net/ellisdod/b3sdqjmL/

Может быть проще использовать beforeEach для преобразования пути:

router.beforeEach((to, from, next) => {
  const routes = ['/','/en/','/es/']
  if ( !routes.some(x=> to.path===x) ) next('/mypath')
  else next()
})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...