1. 云栖社区>
  2. >
  3. 正文

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

作者:用户 来源:互联网 时间:2016-10-19 14:36:06

replace字符串测试编码参数代码

javascript中escape解决过滤URL传值问题 - 摘要: 本文讲的是javascript中escape解决过滤URL传值问题, escape解决过滤URL传值问题在利用ajax传值的时候,遇到特殊符号过滤问题,特殊符号测试 XML/HTML代码01.特殊符号测试哈:~!@#$&%^*()<>,你好吗?<script>aler

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要转换的字符串

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索replace , 字符串 , 测试 , 编码 , 参数 代码 javascript escape、javascript的escape、javascript escape键、javascript php 传值、javascript页面传值,以便于您获取更多的相关知识。