转义函数:1、escape()函数,可将所有空格、标点、重音符号以及其他非ASCII字符用“%xx”十六进制序列码代替;2、encodeURI()函数,可把字符串作为URI进行编码;3、encodeURIComponent()函数。
js中有很多函数可以用来转义和反转义,如escape()和unescape()、encodeURI()和decodeURI()、encodeURIComponent()和decodeURIComponent()等。
1.escape()和unescape()
escape()函数将参数转换为字符串,并以URL编码的格式进行编码。在这种格式中,所有空格、标点、重音符号以及其他非ASCII字符都要%xx十六进制序列码代替。如空格的返回时%20。
1
escape(param);
参数param是转换为字符串并以URL编码格式进行编码的表达式。
unescape()功能恰好相反,将URL编码格式字符串进行解码返回字符串。
1
unescape(param);
例如:
1
escape(“Hello{[World]}”);
转义结果为:
1
Hello%7B%5BWorld%5D%7D
1
unescape(“Hello%7B%5BWorld%5D%7D”)
返回结果:
1
Hello{[World]}
缺点:escape()和unescape()只能处理ASCII字符,不推荐使用这两个方法进行转义、解码。
2.encodeURI()和decodeURI()
encodeURI()函数将文本字符串编码为一个有效的统一资源标识符(URI)。而decodeURI()将URI解码为一般字符串。
encodeURI(param);
param是一个将被编码的字符串
decodeURI(param);
恰恰相反
例如:
encodeURI(“Hellow{[World]}”)
转义结果为:Hello%7B%5BWorld%5D%7D
decodeURI(“Hello%7B%5BWorld%5D%7D”)
返回结果:Hello{[World]}。
注意:
encodeURI()函数单靠自身不能形成HTTP GET请求或者POST请求,因为&、+、=都不会被转码,这几个字符在GET或POST请求中被作为特殊字符对待。
3.encodeURIComponent()和decodeURIComponent()
这两个函数也是用来编码和解码
1
decodeURIComponent(URIString)
URIString为一个已编码的URI组件。
1
encodeURIComponent(URIString)
例:
1
2
3
var aa=‘哈哈+呵呵’;
encodeURIt(aa) //‘哈哈 呵呵’
encodeURIComponent(aa) //‘哈哈+呵呵’
encodeURIComponent()可以转换除英文字母、数字、-、_、.、!、~、*、’、(、)外的所有字符

本文介绍了JavaScript中的转义和编码函数,包括escape()、unescape()、encodeURI()、decodeURI()以及encodeURIComponent()和decodeURIComponent()。详细讲解了它们的作用、使用示例及区别,特别是强调了escape()和unescape()仅处理ASCII字符的限制,以及encodeURI()和encodeURIComponent()在处理HTTP请求时的注意事项。
1991

被折叠的 条评论
为什么被折叠?



