2010-08-10 50 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];