OK permet de dire que j'ai une URL p>
exemple.com/hello/world/20111020 (avec ou sans la barre oblique suivante). Ce que je voudrais faire, c'est de la bande de l'URL l'exemple de domaine.com. puis casser le monde Hello World 20111020 dans un tableau. Mais mon autre problème est. Parfois, l'URL n'a pas / Hello / Monde / 20111020 ou Just / Hello / Donc, j'ai besoin de déterminer pour la première fois s'il y a quelque chose après l'exemple.com s'il n'y a pas, alors ne faites rien comme étant donné qu'il n'y a rien à travailler. Cependant, s'il y a quelque chose là-bas pour chaque / j'ai besoin de l'ajouter à ce tableau dans l'ordre. Donc, je peux travailler avec le tableau [0] et savoir que c'était bonjour. p>
J'ai essayé quelque chose de quelques jours de retour, mais je rencontrais des problèmes avec des esclaves qui traînaient, il n'arrêtait pas de casser le script, j'ai malheureusement abandonné cette idée. Et aujourd'hui, je cherche des idées fraîches. P>
5 Réponses :
Vous pouvez utiliser le plugin JQUERY-URL-PARSER:
var segments = $.url('http://allmarkedup.com/folder/dir/example/index.html').segment(); // segments = ['folder','dir','example','index.html']
<script type="text/javascript"> function splitThePath(incomingUrl){ var url = document.createElement("a"); url.href = incomingUrl; //url.hash Returns the anchor portion of a URL //url.host Returns the hostname and port of a URL //url.hostname Returns the hostname of a URL //url.href Returns the entire URL //url.pathname Returns the path name of a URL //url.port Returns the port number the server uses for a URL //url.protocol Returns the protocol of a URL //url.search Returns the query portion of a URL if(url.pathname && url.pathname != ""){ var pathnameArray = url.pathname.split("/"); }else{ } } </script>
Lorsque vous définissez l'URL.Href est défini la première fois, le navigateur du client remplit dans le reste des valeurs.
J'ai créé l'expression régulière suivante pour les URL
^https?://(((0|([1-9][0-9]{0,1}))(\.(0|([1-9][0-9]{0,1}))){3})|([a-zA-Z]([a-zA-Z0-9$\-_@\.&+!*"\'\(\),]|(%[0-9a-fA-F][0-9a-fA-F]))*(\.([a-zA-Z]([a-zA-Z0-9$\-_@\.&+!*"\'\(\),]|(%[0-9a-fA-F][0-9a-fA-F]))*))*))(/|((/([a-zA-Z]([a-zA-Z0-9$\-_@\.&+!*"\'\(\),]|(%[0-9a-fA-F][0-9a-fA-F]))*))*))$
Ceci devrait fonctionner maintenant url_parts code> pointera sur le tableau
["Bonjour", "World", "20111020"] code >. p> p>
var url = window.location.href; code> pour analyser l'URL actuelle :)
@johnny Vous devez prendre le contenu de url_parts code> tableau et non la sortie de la commande
url_parts.shift () code>
Pour analyser les URL, une approche différente peut utiliser l'objet ANCHOR DOM.
var a = document.createElement("A"); a.href = 'http://example.com:8080/path/to/resources?param1=val1¶ms2=val2#named-anchor'; a.protocol; // http: a.host; // example.com:8080 a.hostname; //example.com a.port; // 8080 (in case of port 80 empty string returns) a.pathname; // /path/to/resources a.hash; // #named-anchor a.search // ?param1=val1¶ms2=val2