Відповідно до цього:
http://en.wikipedia.org/wiki/Query_string#URL_encoding
"+" є дійсним токеном кодування коду URL.
Якщо так, то чому не можна decodeURIComponent
або decodeURI
розшифрувати "hello + world" на "hello world"?
Якщо "+" дійсно, то обов'язково має бути вбудована функція в JavaScript, яка може перетворити "hello + world" на "hello world"?
Відповіді:
0 для відповіді № 1Поведінка Росії decideURIComponent
визначається як "зворотна" операція encodeURIComponent
:
The
decodeURIComponent
Функція обчислює нову версію aURI
в якій кожна евакуаторна послідовність і utf-8 кодування такого роду, який може бути введений вencodeURIComponent
функція замінюється символом, який він представляє.
І encodeURIComponent
не замінює пробіли з +
, але з %20
.
(аналогічний для decodeURI
)
Якщо "+" дійсно, то обов'язково має бути вбудована функція в JavaScript, яка може перетворити "hello + world" на "hello world"?
Звичайно, є:
"hello+world".replace(/+/g, " ");
0 для відповіді № 2
Оскільки encodeURIComponent
буде кодувати пробіл до %20
щоб ви могли отримати hello%20world
. Якщо ти хочеш замінити +
символів, я б запропонував використовувати регулярний вираз