基于javascript如何传递特殊字符

 更新时间:2015年11月30日 11:28:27   投稿:mrr  
在 JavaScript 中使用反斜杠来向文本字符串添加特殊字符,下面通过本篇文章给大家介绍javascript如何传递特殊字符,对js传递特殊字符相关内容感兴趣的朋友一起学习吧

在没步入正轨之前,先给大家介绍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){
 
  }
})

相关文章

  • Extjs表单输入框异步校验的插件实现方法

    Extjs表单输入框异步校验的插件实现方法

    这篇文章主要介绍了Extjs表单输入框异步校验的插件实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • javaScript产生随机数的用法小结

    javaScript产生随机数的用法小结

    这篇文章主要介绍了javaScript产生随机数的用法小结,包括JavaScript Math.random()内置函数 ,Js 随机数产生6位数字的代码,需要的朋友可以参考下
    2018-04-04
  • JavaScript数据类型及相互间的转换规则

    JavaScript数据类型及相互间的转换规则

    这篇文章主要介绍了JavaScript数据类型及相互间的转换规则,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • uniapp app 人脸识别的实现示例

    uniapp app 人脸识别的实现示例

    本文主要介绍了uniapp app 人脸识别的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • JavaScript中this的全面解析及常见实例

    JavaScript中this的全面解析及常见实例

    这篇文章主要给大家介绍了关于JavaScript中this的全面解析及常见实例的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • JS实现服务五星好评

    JS实现服务五星好评

    这篇文章主要为大家详细介绍了JS实现服务五星好评,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • 详解Webpack loader 之 file-loader

    详解Webpack loader 之 file-loader

    这篇文章主要介绍了详解Webpack loader 之 file-loader,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • TypeScript联合类型,交叉类型和类型保护

    TypeScript联合类型,交叉类型和类型保护

    这篇文章主要介绍了TypeScript联合类型,交叉类型和类型保护,联合类型就是定义一些类型,定义的变量只需要满足任意一种类型即可,交叉类型就是需要满足所有类型,交叉类型使用,更多内容我们来看看下面文章详细内容吧
    2021-12-12
  • JavaScript遍历求解数独问题的主要思路小结

    JavaScript遍历求解数独问题的主要思路小结

    数独游戏非常流行,其规则就是1到9数字填入9*9宫格并要求每一行、每一列、每一个粗线(小型)宫内的数字不重复,对此我们来看一下JavaScript遍历求解数独问题的主要思路小结
    2016-06-06
  • JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析

    JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析

    这篇文章主要介绍了JavaScript设计模式之工厂模式和抽象工厂模式,结合实例形式分析了工厂模式的功能、定义、相关问题解决方法,并分析抽象工厂模式与工厂模式的不同之处,需要的朋友可以参考下
    2018-07-07

最新评论