Как удалить последнюю часть строки запроса - PullRequest
0 голосов
/ 10 августа 2010

Мне нужно выделить идентификатор в строке, используя JavaScript. Мне удалось добраться до той части, где я получаю идентификатор, но затем я хочу иметь возможность связать оставшуюся часть строки так, чтобы она оставляла только номер идентификатора, такой как:

  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 ]

2 голосов
/ 10 августа 2010
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 голосов
/ 10 августа 2010

Это один из тех редких случаев, когда регулярное выражение проще и проще для понимания:

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

или, если вы не беспокоитесь об ошибках:

var id = urlString.match(/\/blogid\/(\d+)\//)[1];
0 голосов
/ 10 августа 2010

Вы можете попробовать это:

var blogIdStr = urlString.replace(/(.*\/blogid\/\d+).*/, "$1") 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...