encodeURI、encodeURIComponent和escape用法

吐槽君 分类:实例代码

标题中的三个方法都是用来对字符串进行编码的,当然它们之间是有区别的。

下面就对它们的作用分别做一下介绍,它们的区别自然也就知道了。

先来看一段代码实例:

console.log(encodeURI("前端教程网"));
console.log(encodeURIComponent("前端教程网"));
console.log(escape("前端教程网"));

上面仅仅是对三个方法的演示,下面分别做一下介绍。

一.encodeURI()和encodeURIComponent()方法:

这两个方法确实比较接近,所以就放在一起介绍了。

(1).encodeURI()不编码的字符有82个:

!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

(2).encodeURIComponent()不编码字符有71个:

!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

(3).encodeURI()方法通常是给整个网址编码:

console.log(encodeURI("http://www.pipipi.net/"));

(4).encodeURIComponent主要给url的query参数编码:

console.log("http://www.pipipi.net/test.php?antzone="+encodeURIComponent("前端教程网"));

上面两个方法对应的解码方法分别是:

decodeURI()

decodeURIComponent()

二.escape()方法:

此方法通常不能够用来对URI进行编码,对URI进行编码的话推荐用上面两个。

escape()返回一个包含了charstring内容的字符串值( Unicode格式)。

所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。如果字符值大于255的则用%uxxxx 格式表示。

此方法不编码的字符有69个:

*,+,-,.,/,@,_,0-9,a-z,A-Z

此方法对应的解码方法是unescape()。

encodeURI、encodeURIComponent和escape用法,这样的场景在实际项目中还是用的比较多的,关于encodeURI、encodeURIComponent和escape用法就介绍到这了。

encodeURI、encodeURIComponent和escape用法属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容