J'ai l'URL suivante: P>
http://example.com/product/1/something/Another-Thing < / a> p>
Bien qu'il puisse aussi être: p>
http://test.example.com/product/1/something/ une autre chose p>
ou p>
4 Réponses :
/ \ / produit \ / (\ d +) / code> et obtenir
1 $ code>. p>.
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
Utilisez Utilisez la chaîne JavaScript
Utilisez le regex montez avec quelque chose comme ceci: p>
fenêtre.Location.PathName code> A> à
récupérer le chemin actuel (à l'exclusion
TLD). P> li>
correspondre code>
méthode. P > li>
/ ^ \ / produit \ / (\ d +) / code> pour trouver un chemin qui commence par / produit /, puis un ou plusieurs chiffres (ajouter
i code> à la fin pour soutenir l'insensibilité de la casse). P> li>
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
La chaîne de recherche dans la fonction remplacer accepte-t-elle un tableau? Pour le cas, je veux aller pour https: // code> 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: //", "") . code>
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);