2010-08-10 78 views
0

我需要使用javascript在字符串中隔離id。我設法去哪裏獲得的id但我希望能夠到字符串字符串的其餘部分,使其只留下身份證號碼,如本:如何去掉查詢字符串的最後部分

var urlString = "http://mysite.co.za/wine/wine-blog/blogid/24/parentblogid/15.aspx"; 


    // if the blogid is found in the url string 

    if (urlString.indexOf("blogid") != -1) { 
     alert("blogid id found"); 

     // we strip the string to isolate the blogid 

     url = urlString.substring(urlString.indexOf("blogid") + 7); 

     //alert("url : " + url) 
     blogId = url.substring(0, urlString.indexOf("/")); 

     alert("blogId : " + blogId) 
    } 

我需要能夠剝去24後的所有東西。

謝謝大家。

+0

你嘗試過劈裂以「/」分隔字符串?嘗試使用string.split(「/」)並使用數組操作休息你需要 – KoolKabin 2010-08-10 09:30:02

回答

2
var tempString = urlString.Split("blogid")[1]; 
var blogIdStr = tempString.Split("/")[1]; 

的整數:

var blogId = parseInt(blogIdStr); 

[編輯:]
長的形式是:

var tempArray = urlString.Split("blogid"); 
// try: 
// alert(tempArray, tempArray.length); 
var tempString = tempArray[1]; 
(...) 
+0

你必須在開玩笑吧! :) 謝謝馬丁! – 2010-08-10 09:57:22

+0

你能告訴我[1]請馬丁如何工作嗎? – 2010-08-10 09:58:57

+0

編輯我的答案,以便更好地理解。 ^^ @其他答案:我同意regexp的力量,但對於沒有經驗的regexp程序員(比如我),上面的代碼更具可讀性,可以直接追蹤。 此外,在調試時,您會看到字符串「blogid」出現兩次,因此創建了一個帶有3個字段的tempArray。談論貪婪或不搜索。 – 2010-08-10 10:36:19

0

你可以試試這個:

var blogIdStr = urlString.replace(/(.*\/blogid\/\d+).*/, "$1") 
0

這是那些罕見之一其中一個正則表達式既簡單和容易的情況下就明白了:

var matches = urlString.match(/\/blogid\/(\d+)\//); 
if (matches) { 
    var id = matches[1]; 
} 

,或者,如果你不擔心錯誤:

var id = urlString.match(/\/blogid\/(\d+)\//)[1];