6
votes

Parse URL avec JavaScript ou JQuery

OK permet de dire que j'ai une URL

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.

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.


0 commentaires

5 Réponses :


3
votes

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']


0 commentaires

2
votes
   <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>

1 commentaires

Lorsque vous définissez l'URL.Href est défini la première fois, le navigateur du client remplit dans le reste des valeurs.



0
votes

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]))*))*))$


0 commentaires

18
votes

Ceci devrait fonctionner xxx

maintenant url_parts pointera sur le tableau ["Bonjour", "World", "20111020"] .


2 commentaires

var url = window.location.href; pour analyser l'URL actuelle :)


@johnny Vous devez prendre le contenu de url_parts tableau et non la sortie de la commande url_parts.shift ()



0
votes

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&params2=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&params2=val2


0 commentaires