javascript对url特殊字符转义
做页⾯开发的时候有时候,会使⽤Javascript的escape(),encodeURIComponent(),encodeURI ()这三个函数进⾏URL编码,防⽌特殊字符接收不到。
解决⽅法:就是把客服端中带有特殊字符的参数替换成另⼀些代替的参数,如下所⽰
1、+ URL 中+号表⽰空格 %2B
2、空格 URL中的空格可以⽤+号或者编码 %20
3、 / 分隔⽬录和⼦⽬录 %2F
4、 ? 分隔实际的 URL 和参数 %3F
5、 % 指定特殊字符 %25
6、# 表⽰书签 %23
7、 & URL 中指定的参数间的分隔符 %26
8、 = URL 中指定参数的值 %3D
下⾯简单介绍常⽤做法
1 escape()函数
定义和⽤法
escape() 函数可对字符串进⾏编码,这样就可以在所有的计算机上读取该字符串。
语法
escape(string)
参数  描述
string  必需。要被转义或编码的字符串。
返回值
已编码的 string 的副本。其中某些字符被替换成了⼗六进制的转义序列。
说明
该⽅法不会对 ASCII 字母和数字进⾏编码,也不会对下⾯这些 ASCII 标点符号进⾏编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。
MVC3
页⾯js:
var url = URL +"?startDT="+ escape($("#StartDT").val();//时间
在action中,
{
string dt =  Server.UrlDecode(startDT);
}
2 encodeURI()函数
定义和⽤法
encodeURI() 函数可把字符串作为 URI 进⾏编码。
语法
encodeURI(URIstring)
参数  描述
URIstring  必需。⼀个字符串,含有 URI 或其他要编码的⽂本。
返回值
URIstring 的副本,其中的某些字符将被⼗六进制的转义序列进⾏替换。
说明
该⽅法不会对 ASCII 字母和数字进⾏编码,也不会对这些 ASCII 标点符号进⾏编码: - _ . ! ~ * ' ( ) 。
该⽅法的⽬的是对 URI 进⾏完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进⾏转义的:;/?:@&=+$,#
3 encodeURIComponent() 函数
定义和⽤法
encodeURIComponent() 函数可把字符串作为 URI 组件进⾏编码。
语法
encodeURIComponent(URIstring)
参数  描述
URIstring  必需。⼀个字符串,含有 URI 组件或其他要编码的⽂本。
返回值
URIstring 的副本,其中的某些字符将被⼗六进制的转义序列进⾏替换。
说明
该⽅法不会对 ASCII 字母和数字进⾏编码,也不会对这些 ASCII 标点符号进⾏编码: - _ . ! ~ * ' ( ) 。
其他字符(⽐如 :;/?:@&=+$,# 这些⽤于分隔 URI 组件的标点符号),都是由⼀个或多个⼗六进制的转义序列替换的。
提⽰和注释
提⽰:
请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的⼀部分(⽐如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义⽤于分隔 URI 各个部分的标点符号。javascript说明

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。