📜  JavaScript 中 decodeURIComponent() 和 decodeURI() 函数的区别

📅  最后修改于: 2022-05-13 01:56:26.589000             🧑  作者: Mango

JavaScript 中 decodeURIComponent() 和 decodeURI() 函数的区别

decodeURI()decodeURIComponent()都是 Javascript 全局函数,用于解码编码的 URI(统一资源标识符)。
decodeURI()函数:它解码先前由 encodeURI()函数编码的字符串。它通过用它所代表的字符替换每个UTF-8转义序列来返回一个解码的 URI。

  • 句法:
decodeURI(encodeURI(x));
  • 参数它包含单个参数,其中包含先前由 encodeURI()函数编码的字符串,因此结果将再次为 x。
  • 示例:此示例使用decodeURI()函数。
HTML


 

    decodeURI() Example

 

    

 


HTML


 

    decodeURIComponent() Example

 

    

 


  • 输出:
http://www.testing.com/
http%3A%2F%2Fwww.testing.com%2F

decodeURIComponent()函数:它解码先前由 encodeURIComponent()函数编码的字符串。它通过用它所代表的字符替换每个 UTF-8 转义序列来返回一个解码的 URI 组件。它可以解码 %00 和 %7F 之间的任何值。

  • 句法:
decodeURIComponent(encodeURIComponent(x));
  • 参数单个参数,包括先前由 encodeURIComponent() 编码的字符串,因此结果将再次为 x。
  • 示例:此示例在 decodeURIComponent() 上

HTML



 

    decodeURIComponent() Example

 

    

 

  • 输出:
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”):返回“&”