2017-08-19 96 views
-1

我想要一個JavaScript正則表達式來從facebook配置文件URL中提取一個id的值。例如,我有一個網址從facebook的URL中提取id值

https://www.facebook.com/profile.php?id=100004774025067 

,我只是想提取id=這是隻有數100004774025067部分後的值。

但在某些情況下,我將需要來自帖子的用戶個人資料網址。例如用戶發佈的東西,如果我得到這個職位的個人資料網址鏈接,然後我得到這樣的鏈接:正如你所看到的,id值有後指定一個額外的參數

https://www.facebook.com/profile.php?id=100001883994837&hc_ref=ART7eWRecFS8mMIio66GdaH378zlJMXzisnKubh5PtgINeVwTfOil5aBIyff71OamWA 

我只需要得到id值,不管鏈接中有什麼。

回答

0

您可以使用字符串作爲URL,並使用searchParams提取id參數:

如果沒有額外的參數:

var fb_url = "https://www.facebook.com/profile.php?id=100004774025067"; 
 
var url = new URL(fb_url); 
 
var uid = url.searchParams.get("id"); 
 
console.log(uid);

隨着越來越多的參數:

var fb_url = "https://www.facebook.com/profile.php?id=100004774025067&hc_ref=ART7eW"; 
 
var url = new URL(fb_url); 
 
var uid = url.searchParams.get("id"); 
 
console.log(uid);

+0

謝謝你,它是一個完美的解決方案 – Antesoft

0

您可以通過以下方式做到這一點

function getNumber(str){ 
 
    console.log(str.match(/(?:id=)(\d+)/)[1]); 
 
    return str.match(/(?:id=)(\d+)/)[1]; 
 
} 
 

 
getNumber('https://www.facebook.com/profile.php?id=100004774025067'); 
 
getNumber('https://www.facebook.com/profile.php?id=100001883994837&hc_ref=ART7eWRecFS8mMIio66GdaH378zlJMXzisnKubh5PtgINeVwTfOil5aBIyff71OamWA ');

其中任意數量的ID匹配後