Domanda

Ho bisogno di isolare un id in una stringa utilizzando JavaScript. Sono riuscito a raggiungere la parte in cui arrivo alla id, ma poi voglio essere in grado di stringa il resto della stringa in modo che lascia solo il numero ID come questo:

  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)
    }

Ho bisogno di essere in grado di spogliare tutto dopo il 24.

Grazie a tutti.

È stato utile?

Soluzione

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

per il numero intero:

var blogId = parseInt(blogIdStr);

[edit:]
forma lunga potrebbe essere:

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

Altri suggerimenti

Si può provare questo:

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

Questo è uno di quei rari casi in cui un'espressione regolare è sia più semplice e più facile da capire:

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

o, se non siete preoccupati per gli errori:

var id = urlString.match(/\/blogid\/(\d+)\//)[1];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top