[英]Get a specific string from Url
我知道這聽起來像是一個常見的問題,但我在這里有不同的變量:我有一個像這樣的Url:
https://www.facebook.com/events/546604752058417/?suggestsessionid=791e61ca005570613fa552635bc794a5
現在我需要得到號碼546604752058417
。 所以從邏輯上來說,我應該得到事后的所有內容events/
但是在546604752058417
之后的第一次斜線之后的546604752058417
現在的問題是,網址可能不會以http,https,www等開頭。
我有點失落,是Javascript的新手。
這樣做的簡單方法是什么?
我有一個功能,檢查Url是否有效,它來自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
你可以先用“/”“分割”你的網址
var search_url = $("#search_fb_url").val().split("/");
然后你拿着包含“事件”之后的字段....
如果你知道網址是如何看的,可以確認它是facebook。 然后.split("events/")[1].split("/")[0]
獲取/events/######/
之間的代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.