如何去除查询字符串的最后一部分

时间:2010-08-10 09:25:15

标签: javascript substring indexof

我需要使用javascript隔离字符串中的id。我已经设法到达我获取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之后删除所有内容。

谢谢大家。

3 个答案:

答案 0 :(得分: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];
(...)

答案 1 :(得分:0)

你可以试试这个:

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

答案 2 :(得分:0)

这是一种罕见的情况,其中正则表达式既简单又易于理解:

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

或者,如果您不担心错误:

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