4 Réponses :


7
votes

/ \ / produit \ / (\ d +) / et obtenir 1 $ . .


2 commentaires

N'aurait-il pas aussi: exemple.com/something/product/something-else / une autre chose ?


@ Jonathon: Désolé pour un mauvais exemple. Cela ne serait-il pas aussi: example.com/something/product/1/Another-thing? : P



15
votes
  1. Utilisez fenêtre.Location.PathName à récupérer le chemin actuel (à l'exclusion TLD).

  2. Utilisez la chaîne JavaScript correspondre méthode.

  3. Utilisez le regex / ^ \ / produit \ / (\ d +) / pour trouver un chemin qui commence par / produit /, puis un ou plusieurs chiffres (ajouter i à la fin pour soutenir l'insensibilité de la casse).

  4. montez avec quelque chose comme ceci: XXX


0 commentaires

1
votes

Juste, comme alternative, de le faire sans regex (bien que j'admettais regex est terriblement agréable ici)

var url = "http://test.example.com//mypage/1/test/test//test";
var newurl = url.replace("http://","").split("/");
for(i=0;i<newurl.length;i++) {
    if(newurl[i] == "") {
     newurl.splice(i,1);   //this for loop takes care of situatiosn where there may be a // or /// instead of a /
    }
}
alert(newurl[2]); //returns 1


2 commentaires

La chaîne de recherche dans la fonction remplacer accepte-t-elle un tableau? Pour le cas, je veux aller pour https: // dans le futur?


@Peehaa pas que je sache, mais naturellement, vous pouvez chaîner une autre fonction Remplacer sur là url.replace ("http: //", "") .replace ("https: //", "") .



0
votes

Je voudrais suggérer une autre option.

var url = 'http://localhost:4000/#/trees/8';


var id = url.match(/\/(\d+)+[\/]?/);
//With and without slashes
console.log(id);


0 commentaires