【问题标题】:Extracting id value from a facebook url [duplicate]从facebook url中提取id值[重复]
【发布时间】: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 的值,不管链接中还有什么。

【问题讨论】:

    标签: javascript regex


    【解决方案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后面的任意数字

    【讨论】:

      猜你喜欢
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2012-04-26
      • 2019-12-27
      • 1970-01-01
      相关资源
      最近更新 更多