javascript - 从Url中获取特定字符串

标签 javascript

我知道这听起来可能是一个常见问题,但我这里有不同的变量: 我有一个像这样的网址:

https://www.facebook.com/events/546604752058417/?suggestsessionid=791e61ca005570613fa552635bc794a5

现在我需要获取号码546604752058417。所以从逻辑上讲,我应该得到 events/ 之后的所有内容,但 546604752058417

之后第一个斜线之后的所有内容

现在的问题是,Url 可能以 http、https、www 等开头,也可能不以 http、https、www 等开头。

我对 Javascript 有点迷茫和陌生。

有什么简单的方法吗?

我有一个函数可以检查网址是否有效并且来自 Facebook,但我现在不知道如何获取该网址546604752058417

显然这只是一个示例。该函数应该能够与任何事件 ID 一起使用。

    function fbProcessSearch() {
        var search_url = $("#search_fb_url").val();

        if(isFbUrl(search_url)) {
            $("#search_fb_event").validationEngine("hide");
         // gets the event id from the Url and passes it to the below function.
            fbProcess(eid);
        }else{
            $("#search_fb_event").validationEngine("showPrompt", "Please enter the Facebook event Url", "load", "topLeft", true);
    }
 }

    function isFbUrl(url) {
        var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
        return regexp.test(url) && url.indexOf("facebook.com") > -1;
}

最佳答案

.match 与此正则表达式结合使用:/events\/(.*?)\//

"https://www.facebook.com/events/546604752058417/?suggestsessionid=791e61ca005570613fa552635bc794a5".match(/events\/(.*?)\//)[1]
=> "546604752058417"

说明:

events\/ -> Match "/events/" literally
(.*?)\/  -> match anything until first "/" and also capture it

关于javascript - 从Url中获取特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17105828/

相关文章:

javascript - 跨浏览器onbeforeunload?

javascript - 在 OnInit、OnDestroy 上添加和删除 css 样式

javascript - 脚本无法运行且没有错误消息

javascript - 由 document.createElement ("option"创建的 OPTION 元素始终将 selected 属性设置为 true

javascript - 对于具有全局选项的模式,连续调用 RegExp 测试失败

javascript - 如何在 Javascript 中拆分数组内的数组?

javascript - 如何在恢复功能之前等待 JavaScript Promise 解决?

javascript - 如何使用 jQuery UI datepicker.format

javascript - 从列表中返回对象的更简洁的方法

javascript - Appium android driver + js - 简单示例