7 votes

Suppression de %20 dans les paramètres URL

Je sais qu'il faut utiliser une variante de decodeURIComponent() pour faire quelque chose comme ça, mais comme je suis encore assez novice en codage et que j'utilise un code que j'ai trouvé sur le net pour mes besoins, je ne sais pas trop comment le modifier pour qu'il corresponde à mes besoins.

Ce que j'ai, c'est une fonction qui récupère chaque paramètre URL dont j'ai besoin à partir de l'URL (il y en a beaucoup). Je dois utiliser ces variables pour d'autres fonctions en tant que paramètres et aussi pour les afficher sur la page, et je n'arrive pas à faire disparaître les %20.

function getUrlVars() {
            var vars = {};
            parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
            vars[key] = value;
            });
            return vars;
        }

Où j'obtiens chaque variable en utilisant :

var markname = getUrlVars()["mname"];

J'ai essayé de placer decodeURIComponent() à différents endroits de cette fonction, mais je n'arrive pas à la faire fonctionner. Je ne sais pas non plus s'il faut utiliser value ou vars.

value = decodeURIComponent(value);

Ou quelque chose comme ça...

Toute aide serait appréciée ! Merci d'avance !

6voto

Bergi Points 104242

decodeURIComponent comme vous l'avez indiqué devrait fonctionner correctement. Vous pouvez également remplacer les signes plus par des espaces, et n'oubliez pas de décoder les caractères key également :

function getUrlVars() {
    var url = window.location.href,
        vars = {};
    url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
         key = decodeURIComponent(key);
         value = decodeURIComponent(value);
         vars[key] = value;
    });
    return vars;
}

1voto

Rahul Tathod Points 153

Lorsque vous passez l'url, utilisez str_replace(" ","-",$name) et le décoder par str_replace("-"," ",$p->property_name)

il enlèvera l'espace et ajoutera - dans l'url

0voto

Daniel Points 11

Il suffit de faire ceci ("your string here").replaceAll(" ", "-")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X