基于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 相关文章推荐
jquery的ajax请求全面了解
Mar 20 Javascript
一个简单的瀑布流效果(主体形式自写)
May 27 Javascript
js整数字符串转换为金额类型数据(示例代码)
Dec 26 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
Nov 24 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
基于AngularJs select绑定数字类型的问题
Oct 08 Javascript
vue计算属性computed的使用方法示例
Mar 13 Javascript
详解vue移动端项目代码拆分记录
Mar 15 Javascript
微信小程序登录态和检验注册过没的app.js写法
May 22 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
js读写json文件实例代码
2014/10/21 Javascript
js实现鼠标悬浮给图片加边框的方法
2015/01/30 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
python的Tqdm模块的使用
2018/01/10 Python
基于python的Paxos算法实现
2019/07/03 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
个人党性剖析材料
2014/02/03 职场文书
社区国庆节活动方案
2014/02/05 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
高一作文之乐趣
2019/11/21 职场文书
python munch库的使用解析
2021/05/25 Python
HDFS免重启挂载新磁盘
2022/04/06 Servers
vue elementUI批量上传文件
2022/04/26 Vue.js
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers