У меня проблема с регулярным выражением, и мне нужна помощь. Текущий URL имеет тип /search/:year/:month/:day/xxxx
с :month
и :day
может существовать или нет. Теперь мне нужно заменить /search/:year/:month/:day
patern в моем URL пустой строкой. Смысл получить остатки части URL. Итак, это пример ниже
1. '/ Search / 2017/02/03 / category / gun' => '/ category / gun'
2. '/ Search / 2017 /02/03 / '=>' / '
3.' / Search / 2017/01 / category / gun '=>' / category / gun / '
4.' / Search/ 2017 / категория / пистолет / '=>' / категория / пистолет / '
5.' / Поиск / 2018 /? Категория = пистолет и тип% 5B% 5D = sendo '=>' /? Category = пистолет и тип% 5B% 5D = sendo / '
Я пытаюсь использовать регулярное выражение = /^\/search\/((?:\d{4}))(?:\/((?:\d|1[012]|0[1-9])))?(?:\/((?:[0-3]\d)))/
Но это не удалось в случае /search/2017/category/gun/
const regex = /^\/search\/((?:\d{4}))(?:\/((?:\d|1[012]|0[1-9])))?(?:\/((?:[0-3]\d)))/
const testLink = [
'/search/2017/02/03/category/gun/',
'/search/2017/01/category/gun/',
'/search/2017/category/gun/',
'/search/2017/02/03/category/gun/',
'/search/2018/?category=gun&type%5B%5D=sendo'
]
testLink.forEach((value, i) => {
console.log(value.replace(regex, ''))
console.log('-------------------')
})