Получение Integer / s (ID #) из URL на основе текущей веб-страницы

0

im, глядя на способ получения целого ряда целых чисел из нескольких URL.

Пример.

https://www.mywebsite.com/test/systems/121562/data
https://www.mywebsite.com/test/admin/sites/121562
https://www.mywebsite.com/test/admin/site_activations/121562
https://www.mywebsite.com/test/internaladmin/sites/show/121562/reports

Теперь идентификатор (121562) может быть изменен на основе пользователя. Как и не всегда одинаковое количество символов, оно может составлять от 2 до 6 цифр.

Мне нужно получить этот идентификационный номер по следующему коду на основе текущего URL.

Мой код ниже здесь до такой степени, что он будет определять, имеет ли URL-адрес право перед идентификатором.

var A = (tab.url.indexOf('systems/') > -1);
var B = (tab.url.indexOf('sites/') > -1);
var C = (tab.url.indexOf('site_activations/') > -1);
var D = (tab.url.indexOf('sites/show/') > -1);

var idcode = Unsure code to pull integers from URL;

if( (A && !B) || (B && !A) ) { 
    chrome.tabs.create({ 
    url: "http://www.mywebsite.com/prod?id=" + idcode,
   }) 

} else {

 alert("Do Something");
}
if( (C && !D) || (D && !C) ) { 
    chrome.tabs.create({ 
    url: "http://www.mywebsite.com/prod?id=" + idcode,
}) 
} else {
alert("Do Something");
}

Любые идеи или рекомендации были бы весьма полезны. Этот код предназначен для виджета Google Chrome.

Теги:
string
integer
google-chrome-extension

2 ответа

0

Если вы уверены, что URL-адрес всегда будет следовать одному из следующих форматов (как показывает ваш код):

<something>/systems/:id
<something>/sites/:id
<something>/site_activations/:id
<something>/sites/show/:id

Затем следующее регулярное выражение вытащит для вас 2-6 цифр id

var idcode = /(?:systems|sites|site_activations|sites\/show)\/(\d{2,6})/.exec(tab.url)[1]

Если есть другие возможности, нам потребуется дополнительная информация для настройки шаблона.

0

Если у вас нет других номеров в URL-адресе, вы можете использовать простое регулярное выражение, чтобы получить это:

var id = url.match(/([0-9]+)/)[1]

Взгляните на этот пример: http://jsfiddle.net/vVL37/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню