Функция декодирования URL JavaScript - PullRequest
153 голосов
/ 27 ноября 2010

Какая лучшая утилита декодирования URL JavaScript?Кодирование тоже подойдет, а работа с jQuery - это дополнительный бонус.

Ответы [ 8 ]

231 голосов
/ 16 декабря 2010

Вот полная функция (взято из PHPJS ):

function urldecode(str) {
   return decodeURIComponent((str+'').replace(/\+/g, '%20'));
}
215 голосов
/ 27 ноября 2010

Я использовал encodeURIComponent () и decodeURIComponent () тоже.

9 голосов
/ 19 апреля 2011
decodeURIComponent(mystring);

Вы можете получить переданные параметры, используя этот бит кода:

//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;
}

Или этот однострочный для получения параметров:

location.search.split("your_parameter=")[1]
8 голосов
/ 13 февраля 2013

Используйте это

unescape(str);

Я не большой программист JS, перепробовал все, и это сработало потрясающе!

3 голосов
/ 11 января 2013
//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));
2 голосов
/ 29 апреля 2014

Если вы отвечаете за кодирование данных в PHP с использованием urlencode, rawurlencode PHP работает с decodeURIComponent JavaScript без необходимости замены символа +.

1 голос
/ 15 июля 2015

Вот что я использовал:

В JavaScript:

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

var decoded_url = decodeURIComponent(encoded_url);

В PHP:

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

$decoded_url = url_decode($encoded_url);

Вы также можете попробовать это онлайн здесь: http://www.mynewsfeed.x10.mx/articles/index.php?id=17

0 голосов
/ 04 августа 2018

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