Разница между функциями decodeURIComponent () и decodeURI () в JavaScript
Как decodeURI (), так и decodeURIComponent () являются глобальными функциями Javascript, которые используются для декодирования закодированного URI (унифицированного идентификатора ресурса).
Функция decodeURI (): декодирует строку, ранее закодированную функцией encodeURI (). Он возвращает декодированный URI, заменяя каждую escape-последовательность UTF-8 символами, которые она представляет.
- Синтаксис:
decodeURI (encodeURI (x));
- Параметр Он содержит единственный параметр, который включает строку, ранее закодированную функцией encodeURI (), и, следовательно, результатом снова будет x.
- Пример: В этом примере используется функция decodeURI () .
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>decodeURI() Example</
title
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
var decodeText1 = decodeURI(' http://www.testing.com/ ');
document.write(decodeText1);
document.write("<
br
>");
var decodeText2 = decodeURI('http%3A%2F%2Fwww.testing.com%2F');
document.write(decodeText2);
</
script
>
</
body
>
</
html
>
- Выход:
http://www.testing.com/ http% 3A% 2F% 2Fwww.testing.com% 2F
Функция decodeURIComponent (): декодирует строку, ранее закодированную функцией encodeURIComponent (). Он возвращает декодированный компонент URI, заменяя каждую escape-последовательность UTF-8 символами, которые она представляет. Он может декодировать любое значение от% 00 до% 7F.
- Синтаксис:
decodeURIComponent (encodeURIComponent (x));
- Параметр Единственный параметр, который включает строку, ранее закодированную с помощью encodeURIComponent (), и, следовательно, результатом снова будет x.
- Пример: этот пример находится на decodeURIComponent ()
<!DOCTYPE html>
<
html
>
<
head
>
<
title
>decodeURIComponent() Example</
title
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
var decodeText1 = decodeURIComponent(
' http://www.testing.com/ ');
document.write(decodeText1);
document.write("<
br
>");
var decodeText2 = decodeURIComponent(
'http%3A%2F%2Fwww.testing.com%2F');
document.write(decodeText2);
</
script
>
</
body
>
</
html
>
- Выход:
http://www.testing.com/ http://www.testing.com/
Примечание. Обе функции выдают ошибку URIError, указывающую на то, что одна или несколько управляющих последовательностей в строке имеют неправильный формат и не могут быть правильно декодированы.
Разница между функциями decodeURIComponent () и decodeURI ():
- Оба могут декодировать буквенно-цифровые символы и - _. ! ~ * '() даже символы, но,
- decodeURI (): требуется строка encodeURI (url), поэтому он не может декодировать символы (, /?: @ & = + $ #)
- decodeURIComponent (): для декодирования этих символов требуется строка encodeURIComponent (url).
- decodeURI (): принимает строку encodeURI (url) в качестве параметра и возвращает декодированную строку.
- decodeURIComponent (): принимает строку encodeURIComponent (url) в качестве параметра и возвращает декодированную строку.
- decodeURI («% 41»): возвращает «A»
- decodeURIComponent («% 41») Возвращает «A»
- decodeURI («% 26»): возвращает «% 26»
- decodeURIComponent («% 26»): возвращает «&»