龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

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

时间:2012-12-29 08:41来源:未知 作者:admin 点击:
分享到:
javascript中escape解决过滤URL传值问题,有需要的朋友可参考一下。 escape解决过滤URL传值问题在利用ajax传值的时候,遇到特殊符号过滤问题,特殊符号测试 XML/HTML代码01.特殊符号测试哈:
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要转换的字符串


精彩图集

赞助商链接