Я пытаюсь использовать операторы switch с условиями регулярного выражения для установки переменной 'direction' в зависимости от 'url'. У меня есть следующий пример 'url':
1) a. /meat/chicken/C/1/edit
b. /meat/chicken/c/2/edit
c. /meat/chicken/new
2) a. /meat/beef/B/1/edit
b. /meat/beef/b/2/edit
c. /meat/beef/new
Тип мяса может варьироваться.
Мои условия / код регулярного выражения верны для этих URL:
if(/[a-zA-Z]+.[a-zA-Z]+.[a-zA-Z]+.\d+.[edit]+/.test(url)){
switch (true) {
case /chicken/.test(url):
direction = 'chicken/edit'
break;
case /beef/.test(url):
direction = 'beef/edit';
break;
default:
direction = 'edit';
break;
}
} else if(/[a-zA-Z]+.[a-zA-Z]+.[new]+/.test(url)){
switch (true) {
case /chicken/.test(url):
direction = 'chicken/new'
break;
case /beef/.test(url):
direction = 'beef/new';
break;
default:
direction = 'new';
break;
}
}
Однако, это верно и для других URL-адресов, которые я не хочу, например:
/meat/beef/
Если 'url' равен '/ meat / beef /', это в настоящее время возвращает значение true, если if-утверждение "(иначе, если (/ [a-zA-Z] +. [a-zA-Z] +. [new] + /. test (url)) {", что я не хочу, чтобы оно было правдой, потому чтов нем нет слова «новый».
Я просто хочу, чтобы мои операторы if и switch-операторов совпадали и были верны для форматов 1) и 2) выше.
IЯ не очень хорошо владею регулярными выражениями и все еще изучаю операторы switch. Кто-нибудь может мне помочь?