从基于当前网页的 URL 获取整数 (ID #)

Obtaining Integer/s (ID #) from a URL based on current webpage

本文关键字:整数 ID 获取 URL 于当前 网页      更新时间:2023-09-26

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

现在,id (121562) 可能会根据用户而更改。除了并不总是相同数量的字符外,它的长度可以是 2 到 6 位。

我需要能够根据当前 URL 通过以下代码获取此 ID 号。

我下面的代码在这里是,它将确定 url 是否在 ID 之前有部分。

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");
}

任何想法或建议将不胜感激。此代码适用于谷歌浏览器小部件。

如果 URL 中没有任何其他数字,则可以使用简单的正则表达式来获取:

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

请看这个例子:http://jsfiddle.net/vVL37/

如果您确定 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]

如果还有其他可能性,那么我们需要更多信息来调整模式。