Я пытаюсь создать шаблон, который соответствует всем путям URL-адресов, кроме '/' или '/en', или '/en/', или '/es', или '/es/'
Я пробовал некоторые, но, похоже, есть особый способ заставить его работать с vue router:
routes.push({
name: 'test',
path: '/(myregexpattern)',
component: resolve(__dirname, 'test/b.vue'),
});
1 ответ
Вы можете использовать отрицательный просмотр вперед:
path : '/((?!en\/?$|es\/?$).+)'
Протестируйте его с помощью path-to-regexp. -router использует для разбора пути.
Пример: 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()
})
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.