基于javascript如何传递特殊字符


Posted in Javascript onNovember 30, 2015

在没步入正轨之前,先给大家介绍JavaScript 特殊字符

你可以在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符。

插入特殊字符

反斜杠用来在文本字符串中插入省略号、换行符、引号和其他特殊字符。

请看下面的 JavaScript 代码:

var txt="We are the so-called "Vikings" from the north."
document.write(txt)

在 JavaScript 中,字符串使用单引号或者双引号来起始或者结束。这意味着上面的字符串将被截为:We are the so-called。
要解决这个问题,就必须把在 "Viking" 中的引号前面加上反斜杠 (\)。这样就可以把每个双引号转换为字面上的字符串。

var txt="We are the so-called \"Vikings\" from the north."
document.write(txt)

现在 JavaScript 就可以输出正确的文本字符串了:We are the so-called "Vikings" from the north。

这是另一个例子:

document.write ("You \& me are singing!")

上面的例子会产生以下输出:

You & me are singing!

下面的表格列出了其余的特殊字符,这些特殊字符都可以使用反斜杠来添加到文本字符串中:

代码 输出
\' 单引号
\" 双引号
\& 和号
\\ 反斜杠
\n 换行符
\r 回车符
\t 制表符
\b 退格符
\f 换页符

背景:

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

原因:

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

解决办法:

1、将字符放到form中,然后用js提交form表单到服务器.
2、将字符中地特殊字符替换成十六进制地字符,一些特殊字符与十六进制地对应关系:

+ 空格 / % & = #
%2b %20 %2f %3f %25 %26 &3d %23

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

3、最简单地一种,使用encodeuricomponent()函数.

该方法不会对 ascii 字母和数字进行编码,也不会对这些 ascii 标点符号进行编码: - _ . ! ~ * ' ( ) .
其他字符(比如 :;/?:@&=+$,# 这些用于分隔 uri 组件地标点符号),都是由一个或多个十六进制地转义序列替换地.

jQuery ajax特殊字符参数

在做ajax登录时候遇到的一个问题,当传入参数含有特殊字符,比如:“$'#@”等。参数传递会有问题,无法正确获取。

$.ajax({
  url: '/user/login.ydd',
  type:'post',
  data:'name=abce&password=abcd&pwd',
  success: function(data){
  }
})

我要传入的是用户名为:abc,密码为abcd&pwd的用户登录。但传入后台获取参数,会被password=abcd当作一个参数传递,&这个特殊将pwd分开了作为另一个参数解析了。

解决方法,这时候就需要ajax另外一种传递参数的方式

$.ajax({
  url: '/user/login.ydd',
  type:'post',
  data:{'name':'abce','password':'abcd&pwd'},
  success: function(data){
 
  }
})
Javascript 相关文章推荐
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
Jan 23 Javascript
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
Apr 01 Javascript
JavaScript获取XML数据附示例截图
Mar 05 Javascript
JS模拟按钮点击功能的方法
Dec 22 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
Aug 15 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
Oct 30 Javascript
微信JS-SDK选取手机照片上传功能
Apr 21 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
微信小程序实现点赞、取消点赞功能
Nov 02 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 #Javascript
全面解析Bootstrap排版使用方法(文字样式)
Nov 30 #Javascript
javascript中eval和with用法实例总结
Nov 30 #Javascript
JavaScript基础篇(3)之Object、Function等引用类型
Nov 30 #Javascript
全面解析Bootstrap排版使用方法(标题)
Nov 30 #Javascript
javascript作用域链(Scope Chain)用法实例解析
Nov 30 #Javascript
Bootstrap每天必学之js插件
Nov 30 #Javascript
You might like
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
javascript之函数直接量(function(){})()
2007/06/29 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
基于jquery的拖动布局插件
2011/11/25 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
JavaScript随机数的组合问题案例分析
2020/05/16 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
numpy库reshape用法详解
2020/04/19 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
加拿大时装零售商:Influence U
2018/12/22 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
三爱活动实施方案
2014/03/19 职场文书
表彰会主持词
2014/03/26 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
村官个人总结范文
2015/03/03 职场文书
2014年个人年终总结
2015/03/09 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
建国大业观后感600字
2015/06/01 职场文书
如何用RabbitMQ和Swoole实现一个异步任务系统
2021/05/29 PHP
Python连续赋值需要注意的一些问题
2021/06/03 Python