2016-08-05 97 views
0

我遇到了一些訪問和轉發ID的問題。 我成功地從我的URL中提取了ID,但是如果URL包含不可預知的數字,我也會遇到問題。在URL中查找包含數字的數字ID

要清除了一點東西:

我的努力來獲取該ID到目前爲止(JS)

var idString = window.location.href; 
    idString = idString.replace(/e107/gi, "__ersetzt__"); 
    idString = idString.replace("http://localhost/Westbomke/backendV5/", ""); 
    idString = idString.replace(/[^0-9]+/g, ""); 

一些URL例子

工作:

http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php    結果:235 = ID

不工作:

本地主機/ Westbomke/backendV5/E107-主/ e107_projekte/BMW/235_Projekt_BMW-Event01/page.php文件

本地主機/ Westbomke/backendV5 /e107-master/e107_projekte/company1337/235_Projekt_1337Event/page.php

現在

,如果我能排除   /****** _ Projekt_    部分(**** = RANDO m數量的數字),並將其解析爲一個整數我會很好,但我不知道如何做到這一點,或者如果它是可能的。

我試圖找到這裏和通過谷歌的東西,但我很可能不要求正確的東西。

感謝您的提前幫助!

回答

1

你可以嘗試使用:

var url = 'http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php'; 
var id = +url.match(/\/(\d+)/)[1]; 
+0

難以置信。 感謝您這麼快速的回答! 我真的不明白這種提取如何工作,但它確實如此。 如果你不介意,我會很樂意解釋這個特定的url.match是如何工作的。 – Detale

+0

@Detale你很好 - 記得用左邊的粗號標記正確的答案。 – hsz

0

這是網址,你正在努力穩定的結構方面? 如果n要熟悉正則表達式,結構相當穩定,然後將下面的代碼將做的工作適合你:

var myString = "http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php"; 
 
var mySplitString = myString.split("/"); 
 
var myNumber = parseInt(mySplitString[8]); 
 

 
console.log(myNumber);

添加下面的函數,它將爲您提供更多的靈活性。

var myString = "http://localhost/Westbomke/backendV5/e107-master/e107_projekte/BMW/235_Projekt_BMW-Event/page.php"; 
 

 
function getProject(myString , myDist){ 
 
    var mySplitString = myString.split("/"); 
 
    var myID = ''; 
 
    mySplitString.forEach(function(key , index){ 
 
    if(key.indexOf(myDist) > 0) 
 
    myID = parseInt(mySplitString[index]); 
 
    }); 
 

 
    return myID; 
 
} 
 

 
var myID = getProject(myString , "Projekt"); 
 
console.log(myID);

+0

** http:// localhost/Westbomke/backendV5/e107-master/e107_projekte/**是關於這些頁面的所有鏈接中使用的普通結構。之後是**公司名稱**,其中很多都發生了變化,其後是**唯一ID **。 ** \ _Projekt \ _ **也是不變的,而** BMW-Event **是變化的項目名稱。 ** page.php **再次保持不變。我非常感謝你的努力來幫助我。現在,我將使用hsz的代碼,如果遇到任何問題,並且由於某種原因而無法工作(例如,從本地主機切換到在線),我將嘗試使用您的解決方案。 – Detale

相關問題