jQuery pour parsingr notre une partie d’un chemin d’URL

J’ai besoin d’parsingr de longues URL et de définir une variable (catégorie) égale à l’un des /folders/ dans le chemin.

Par exemple, une URL qui est

http://example.com/community/home/whatever.html

Je dois définir la variable égale à ce que le chemin du dossier vient après /home/ dans cette URL.

J’ai ceci pour m’alerter de ce qui vient après / community /, mais ensuite l’URL se tourne vers NaN et le lien ne fonctionne pas. Je pense que je ne suis pas sur la bonne voie.

 if ($(this.href*='http://example.com/community/')){ var category = url.split("community/"); alert(category[category.length - 1]); } 

Pensées?

TIA.

Vous pouvez tout récupérer après “/ community /” avec une expression régulière:

 var url = "http://www.example.com/community/whatever"; var category = ""; var matches = url.match(/\/community\/(.*)$/); if (matches) { category = matches[1]; // "whatever" } 

Exemple de travail ici: http://jsfiddle.net/jfriend00/BL4jm/

Si vous voulez obtenir uniquement le prochain segment de chemin après la communauté et rien après ce segment, vous pouvez utiliser ceci:

 var url = "http://www.example.com/community/whatever/more"; var category = ""; var matches = url.match(/\/community\/([^\/]+)/); if (matches) { category = matches[1]; // "whatever" } else { // no match for the category } 

Exemple de travail de celui-ci ici: http: //jsfiddle.net/jfriend00/vrvbT/

Lorsque vous faites this.href*= vous effectuez une multiplication , et c’est pourquoi vous n’obtenez pas un nombre. Il multiplie this.href par la chaîne et l’assigne à href .

Si vous voulez tester si l’URL commence par cette chaîne, vous pouvez le faire comme ceci, inutile de jQuery:

 var start = 'http://example.com/community/'; if (url.subssortingng(0, start.length) === start)){ var category = url.split("community/"); var lastPart = category[category.length - 1]; return lastPart.split("/")[0]; }