escape
编码字符串,将特定字符替换为十六进制表示的转义串。
语法
escaped = escape(regular);
escaped是被编码了的字符串
regular是原始字符串
示例
alert(escape("http://www.cnn.com")); // 显示: http%3A//www.cnn.com
注意
excape()方法将特殊字符转变为十六进制的字符表示,这对于作为cookie值非常有必要。同样的,在传递name=value对的URL钟,和GET/POST的AJAX方法中,编码也十分必要。
它编码所有特殊字符,除了这些: * @ - _ + . /
encodeURI
将同一资源标识符的每个utf-8字符用一个,两个,三个或者四个转义字符串表示(每个转移字符串格式为%XX)
语法
encodeURI(URI)
参数
- 完整的同一资源标识符
URI
详细介绍
encodeURI并不编码在同一资源标识符中含有特殊含义的字符。
它通过合适的UTF-8转义序列替换所有字符,除了以下字符:
Type | Includes |
Reserved characters | ; , / ? : @ & = + $ |
Unescaped characters | alphabetic, decimal digits, - _ . ! ~ * ' ( ) |
Score | # |
注意encodeURI自身并不能形成合适的HTTP GET和POST请求,因为对于像XMLHTTPRequest这样的请求中出现的"&","+"和"="并没有被编码,而这些字符在请求中是具有特殊含义的。可以使用encodeURIComponent执行这些操作。
encodeURIComponent
将同一资源标识符中的请求参数单元的每个utf-8字符用一个,两个,三个或者四个转义字符串表示(每个转移字符串格式为%XX)
Core Global Method | |
---|---|
Implemented in | JavaScript ? |
ECMAScript Edition | ECMAScript 3rd Edition |
语法
var encoded = encodeURIComponent(str);
参数
- 统一资源标识符中的请求参数
str
详细描述
encodeURIComponent转义除后面这些字符的所有字符:字母 数字
- _ . ! ~ * ' ( )
为避免向服务器发送不可预测的请求,你应该调用encodeURIComponent来转义用户输入的每个作为URI请求的参数。例如,用户输入 "Thyme &time=again
"作为变量comment的值,不使用encodeURIComponent使得结果为comment=Thyme%20&time=again。从而新增属性time。
对于application/x-www-form-urlencoded
(POST),空格将被替换为'+',所以如果你想模仿这种传输类型,需要将"%20"替换为"+"