A-A+

javascript中escape解决过滤URL传值问题

2016年01月27日 web前端设计 暂无评论 阅读 7 views 次

javascript中escape解决过滤URL传值问题,有需要的朋友可参考一下。

escape解决过滤URL传值问题在利用ajax传值的时候,遇到特殊符号过滤问题,特殊符号测试

XML/HTML代码01.特殊符号测试哈:~!@#$&%^*()<>,你好吗?<script>alert("hello world");</script>

因为特殊字符里面有一个&符号,会被当作与data类型传多个传时的连接符号&一样,所以其后面的字符串会被当作参数值来传递,

解决方法:

使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,

解决方法如下(另类解决办法):

JavaScript代码如下:

var tradition_content = tradition_content.replace("&",escape('&'));//tradition_content

要转换的字符串

如要转换所有&,代码如下:

var REPand = /&/g;

var tradition_content = tradition_content.replace(REPand ,escape('&'));

//tradition_content要转换的字符串

标签:

给我留言