从facebook url中提取id值[重复]

Posted

技术标签:

【中文标题】从facebook url中提取id值[重复]【英文标题】:Extracting id value from a facebook url [duplicate] 【发布时间】:2018-01-27 21:06:10 【问题描述】:

我想要一个 javascript 正则表达式从 facebook 个人资料 URL 中提取 id 的值。比如我有一个网址

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

我只想提取 id= 之后的值,这只是数字 100004774025067 部分。

但在某些情况下,我需要帖子中的用户个人资料网址。例如,一个用户发布了一些东西,如果我得到了帖子的个人资料 url 链接,那么我会得到这样的链接:

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

如您所见,id 的值之后指定了一个附加参数。

我只需要获取id 的值,不管链接中还有什么。

【问题讨论】:

【参考方案1】:

您可以将字符串用作 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);

【讨论】:

谢谢你,这是一个完美的解决方案【参考方案2】:

您可以通过以下方式进行操作

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后面的任意数字

【讨论】:

以上是关于从facebook url中提取id值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 facebook 视频 url 中提取缩略图

Perl生信日常编程-从fa文件批量根据id列表提取序列

通过删除Laravel中的额外字符,从斜杠分隔的URL中提取参数值

如何在 Python 中使用 Regex 从 HTML <a> 标签中提取 Facebook 页面 URL?

解析 Facebook 登录不返回所有字段(它只返回 id 和 name)[重复]

通过删除 Laravel 中的多余字符,从斜杠分隔的 url 中提取参数值