Я хотел бы получить конкретные значения фруктов из строки URL в JavaScript.
Фрукты, которые я хотел бы получить, это яблоко, груша, белая груша, банан и банановая Бразилия.
Значение из URL, которое я должен получить:
www.ourfruit.net/fruit/apple_is_healthy.html (value: apple)
www.ourfruit.net/fruit/pear_is_healthy.html (value: pear)
www.ourfruit.net/fruit_offer/white_pear_discount.html (value: white-pear)
www.ourfruit.net/fruit_offer/banana_love.html (value: banana)
www.ourfruit.net/fruit_export/banana_brazil_export.html (value: banana-brazil)
Значение из URL, которое я не должен получить:
www.ourfruit.net/fruit/red_apple_is_healthy.html
www.ourfruit.net/fruit_offer/green_banana_love.html
www.ourfruit.net/fruit_export/banana_brazil_yellow_quality_export.html
Моя попытка на основе этого решения Регулярное выражение для поиска двух строк в любом месте ввода равно
function findFruits() {
var url_path = window.location.pathname;
var url_path = url_path.replace(/\//g, "_");
var url_path = url_path.replace("_", "");
var url_path = url_path.replace("_index.html", "");
if (-1 !== url_path.match(/^.*apple.*$/)) theFruit = "fruit_apple";
if (-1 !== url_path.match(/^.*pear.*$/)) theFruit = "fruit_pear";
if (-1 !== url_path.match(/^.*white.*pear.*$/)) theFruit = "fruit_white_pear";
if (-1 !== url_path.match(/^.*banana.*$/)) theFruit = "fruit_banana";
if (-1 !== url_path.match(/^.*banana.*brazil.*$/)) theFruit = "fruit_banana_brazil";
tagData.tagValue.push({
"tags": [{ "tag": "FRUIT_POPULATE", "value": theFruit }],
"isEvent": true,
"isTargeting": true })
}
jQuery(document).ready(function() {
findFruits();
});
Это работает. Проблема даже в том, что на другой странице консоль показывает результат только в последнем операторе if. Так что в этом случае результат FRUIT_POPULATE: fruit_banana_brazil. Если я изменю позицию последнего оператора if на другой результат, консоль все равно покажет значение из последнего оператора if.
Вопрос: Как правильно отобразить значение theFruit из приведенной выше строки URL?
Спасибо