js的转移符的应用

                                                                             参数的转义

1、js中 :

var  brandStr = "";

var  inputId ="123";

var c = "789";

brandStr = brandStr+'<div class="div-top-button-1"><input  class="div-top-button dianji"οnclick="funClick(\''+inputId+'\',\''+c+'\')" type="button" value="隐藏     V" /></div>';

@@@@@

var infoTemplate = 

new esri.InfoTemplate("线索内容","问题发生地:"+address+" 

<br/> 问题摘要:"+content+"&nbsp;&nbsp;<a href='http://blog.csdn.net/banlifeather/article/details/#'οnclick='showDetails(\""+yw_guid+"\")'>详情</a>");




                                                                            特殊字符需要转义

用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长)。查了一上午,原来是我生成的字符串中有+号,而在js传递的时候,会理解为是连接字符用的,到了后台就将+号自动变为空格了,所以后台的字符串和前台生成的已经不一样了。

原因:

js后自动解析特殊字符,如+号为连接符,解析为空格,&为变量连接符,服务器端接受数据时&以后的数据不显示等等。

解决办法:

1、将字符放到form中,然后用js提交form表单到服务器。

2、将字符中的特殊字符替换成十六进制的字符,一些特殊字符与十六进制的对应关系:

str = str.replace(/\+/g,"%2B"); 将+号替换为十六进制 

3、最简单的一种,使用encodeURIComponent()函数。  

  该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

举例:
document.write(encodeURIComponent("http://www.w3school.com.cn"))

输出:
http%3A%2F%2Fwww.w3school.com.cn



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值