Można również wykorzystać escape()
funkcji . Funkcja escape()
koduje ciąg znaków. Funkcja ta sprawia, że ciąg przenośne, dzięki czemu może być przekazywana w dowolnej sieci na dowolnym komputerze, który obsługuje funkcję characters.This ASCII koduje znaki specjalne, z wyjątkiem: * @ - _ + . /
var queryStr = "bla&bla&bla";
alert(queryStr); //bla&bla&bla
alert(escape(queryStr)); //bla%26bla%26bla
Zastosowanie unescape()
zdekodować ciąg.
var newQueryStr=escape(queryStr);
alert(unescape(newQueryStr)); //bla&bla&bla
Uwaga:
escape() will not encode: @*/+
encodeURI() will not encode: [email protected]#$&*()=:/,;?+'
encodeURIComponent() will not encode: ~!*()'
Po pewnym wyszukiwania w internecie, mam następujący:
escape()
nie używaj go.
encodeURI()
Zastosowanie encodeURI kiedy chcesz URL pracy. Dodać do tego połączenia:
encodeURI("http://www.google.com/a file with spaces.html")
dostać:
http://www.google.com/a%20file%20with%20spaces.html
Nie nazywaj encodeURIComponent ponieważ zniszczyłoby to adres URL i zwraca
http%3A%2F%2Fwww.google.com%2Fa%20file%20with%20spaces.html
encodeURIComponent()
Użyj encodeURIComponent, aby zakodować adres URL pa rameter.
param1 = encodeURIComponent ("http://xyz.com/?a=12&b=55")
Then you may create the URL you need:
url = "http://domain.com/?param1=" + param1 + "¶m2=99";
I dostaniesz to pełny adres URL:
http://www.domain.com/?param1=http%3A%2F%2Fxyz.com%2F%Ffa%3D12%26b%3D55¶m2=99
Zauważ, że encodeURIComponent
nie uciec "charakter. Najczęstszym błędem jest użycie go do tworzenia atrybutów html, takich jak href='MyUrl',
, które mogą ucierpieć z powodu błędu wtrysku. Jeśli konstruowania html z ciągów znaków, albo użyć "zamiast«o wycenę atrybutów lub dodać dodatkową warstwę kodowania (»może być zakodowany jako% 27)
Ref.: When are you supposed to use escape instead of encodeURI/encodeURIComponent?
Ponadto, jak używasz JQuery, spojrzeć na this wbudowanej funkcji.
http://stevenbenner.com/2010/03/javascript-regex-trick-parse-a-query-string-into-an-object/ – karaxuna
Czy nie ma standardowej metody, aby to zrobić? – Dmitry
Czy używasz JQuery? –