Изменить значения JavaScript после разбора - PullRequest
0 голосов
/ 16 марта 2019

Алоха!

Я работаю над довольно интересным небольшим проектом.Мне, по крайней мере, это интересно.А именно расширение Chrome.Он получает ссылки с веб-сайта и выкладывает их на новой вкладке.По сути, это Link Grabber, но он очень специфический.

Есть две схемы URL, с которыми мне приходится иметь дело.

У меня сгенерирован следующий JSON: EDIT после комментария TJ Crowder: Это не JSON.Это ... Редактировать II : JavaScript.Спасибо TJ.

(_chrome);
    !function() {
        for (var elements = document.querySelectorAll("a:link[href*='/s1/product/']:not([href*='#']):not([href^=javascript])"), links = new Array(elements.length), i = 0; i < elements.length; i++) links[i] = {
            host: elements[i].host,
            hostname: elements[i].hostname,
            href: elements[i].href,
            productnumber: elements[i].href,
            pathname: elements[i].pathname,
            search: elements[i].search,
            text: elements[i].text
        };
        console.log(links)
        _chrome2.default.runtime.sendMessage(links);
    }();

Проблема возникает, когда я хочу сделать номер продукта.Для этого мне нужно было бы иметь возможность изменять elements [i] .href в функции.Из более раннего проекта, я сказал функцию.Я уже возился с этим, пока не наткнулся на стену, которая заставила меня сделать этот пост.

function() {
                var urlsList = JSON.parse(elements[i].href);
                    console.log(urlsList);
                var ju = urlsList.split('?')[0]
                    pat = /[-|\/](\d{5,8})$/
                    rv = pat.exec(ju)
                    if (rv !== null) {
                                      console.log("Found id: " + rv[1])
                        return rv[1]}}

Поэтому мой вопрос заключается в следующем: как выделить все номера продуктов и отделить все послепотенциальный "?"?

Ура и спасибо за помощь!

1 Ответ

0 голосов
/ 16 марта 2019

После @ T.J. Краудер заставил меня пойти по правильному пути, предположив, что я работаю не с JSON, это было довольно просто.

productnumber: elements[i].href.replace(/.+?(\d{5,8})\?.+/,"$1"),

И это было все. Спасибо, T.J.!

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