web-dev-qa-db-fra.com

Fonction de décodage d'URL JavaScript

Quel est le meilleur utilitaire de décodage d'URL JavaScript? Encoder serait bien aussi et bien travailler avec jQuery est un bonus supplémentaire.

154
at.
215
Geoff

Voici une fonction complète (tirée de PHPJS ):

function urldecode(str) {
   return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}
232
anshuman
decodeURIComponent(mystring);

vous pouvez obtenir des paramètres passés en utilisant ce bit de code:

//parse URL to get values: var i = getUrlVars()["i"];
function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.Push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

Ou ce one-liner pour obtenir les paramètres:

location.search.split("your_parameter=")[1]
9
Etienne Dupuis

Utilisez ceci

unescape(str);

Je ne suis pas un grand programmeur JS, j'ai tout essayé et cela a fonctionné à merveille!

8
nithinreddy
//How decodeURIComponent Works

function proURIDecoder(val)
{
  val=val.replace(/\+/g, '%20');
  var str=val.split("%");
  var cval=str[0];
  for (var i=1;i<str.length;i++)
  {
    cval+=String.fromCharCode(parseInt(str[i].substring(0,2),16))+str[i].substring(2);
  }

  return cval;
}

document.write(proURIDecoder(window.location.href));
3
Irfan M

Si vous êtes responsable de l'encodage des données dans PHP à l'aide de urlencode, le code rawurlencode de PHP fonctionne avec le composant decodeURIComponent de JavaScript sans qu'il soit nécessaire de remplacer le caractère +.

2
Brent Self

Voici ce que j'ai utilisé:

En JavaScript:

var url = "http://www.mynewsfeed.com/articles/index.php?id=17";
var encoded_url = encodeURIComponent(url);

var decoded_url = decodeURIComponent(encoded_url);

En PHP:

$url = "http://www.mynewsfeed.com/articles/index.php?id=17";
$encoded_url = url_encode(url);

$decoded_url = url_decode($encoded_url);

Vous pouvez également l'essayer en ligne ici: http://www.mynewsfeed.x10.mx/articles/index.php?id=17

0
user3572058
var uri = "my test.asp?name=ståle&car=saab";
console.log(encodeURI(uri));
0
methodpool.io