转义函数:1、escape()函数,可将所有空格、标点、重音符号以及其他非ascii字符用“%xx”十六进制序列码代替;2、encodeuri()函数,可把字符串作为uri进行编码;3、encodeuricomponent()函数。
本教程操作环境:windows7系统、javascript1.8.5版、dell g3电脑。
js中有很多函数可以用来转义和反转义,如escape()和unescape()、encodeuri()和decodeuri()、encodeuricomponent()和decodeuricomponent()等。
1.escape()和unescape()
escape()函数将参数转换为字符串,并以url编码的格式进行编码。在这种格式中,所有空格、标点、重音符号以及其他非ascii字符都要%xx十六进制序列码代替。如空格的返回时%20。
escape(param);
参数param是转换为字符串并以url编码格式进行编码的表达式。
unescape()功能恰好相反,将url编码格式字符串进行解码返回字符串。
unescape(param);
例如:
escape("hello{[world]}");
转义结果为:
hello%7b%5bworld%5d%7d
unescape("hello%7b%5bworld%5d%7d")
返回结果:
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()
这两个函数也是用来编码和解码
decodeuricomponent(uristring)
uristring为一个已编码的uri组件。
encodeuricomponent(uristring)
例:
var aa='哈哈+呵呵';encodeurit(aa) //'哈哈 呵呵'encodeuricomponent(aa) //'哈哈+呵呵'
encodeuricomponent()可以转换除英文字母、数字、-、_、.、!、~、*、'、(、)外的所有字符
更多编程相关知识,请访问:编程视频!!
以上就是javascript转义函数有哪些的详细内容。