JS中decodeURI()与decodeURIComponent()区别是什么?

已邀请:

zkbhj - 凯冰科技站长

赞同来自:

这两个函数可以对特定函数生成的密码字符串进行解密操作,就可以生成为未解密的字符串,比较实用,下面来看看这两个函数的用法和实例,你就会用了:

decodeURI()定义和用法:
 
decodeURI() 函数可对 encodeURI() 函数编码过的URI 进行解码。

语法:decodeURI(URIstring)

参数 描述:URIstring 必需。一个字符串,含有要解码的 URI 或其他要解码的文本。

返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。

 

decodeURIComponent()定义和用法:decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。

语法:decodeURIComponent(URIstring)

参数 描述:URIstring 必需。一个字符串,含有编码 URI 组件或其他要解码的文本。

返回值:URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。
 
<html>  
<body>

<script type="text/javascript">

var test1="http://www.wljcz.com/My first/";
var nn=encodeURI(test1);
var now=decodeURI(test1);
document.write(nn+ "<br />");
document.write(now);

var test1="http://www.wljcz.com/My first/";
var bb=encodeURIComponent(test1);
var nnow=decodeURIComponent(bb);
document.write(bb+ "<br />");
document.write(nnow);

</script>

</body>
</html>
其运行结果为:

http://www.wljcz.com/My%20first/
http://www.wljcz.com/My first/

http%3A%2F%2Fwww.wljcz.com%2FMy%20first%2F
http://www.wljcz.com/My first/
 
综上:
 
encodeURI 和 decodeURI 函数操作的是完整的 URI;这俩函数假定 URI 中的任何保留字符都有特殊意义,所有不会编码它们。

encodeURIComponent 和 decodeURIComponent 函数操作的是组成 URI 的个别组件;这俩函数假定任何保留字符都代表普通文本,所以必须编码它们,所以它们(保留字符)出现在一个完整 URI 的组件里面时不会被解释成保留字符了。

以上说明摘自ECMAScript标准,为了容易读懂做了点编辑加工。
787416-20160315112709146-1525146904.png

 

要回复问题请先登录注册