当前位置:首页 > 编程教程 > javascript技术文章 > js 转义字符及URI编码详解

js转义字符及URI编码基础知识点

  • 发布时间:
  • 作者:码农之家
  • 点击:190

这篇文章主要知识点是关于js、转义字符、URI编码、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

JavaScript语言精粹
JavaScript语言精粹超清修订版
  • 类型:JavaScript大小:9.9 MB格式:PDF作者:克罗克福德
立即下载

js 转义字符及URI编码详解

URL中的转义字符

当URL的参数中出现诸如+,空格,/,?,%,#,&,=等特殊字符串符号时,因为上述字符有特殊含义,导致服务器端无法正确解析参数,如何处理?解决办法:将这些字符转化成服务器可以识别的字符。

如果要在URL中传递特殊符号的原本意义,要对他们进行编码。编码的格式为:%加字符的ASCII码(16进制),例如空格的编码值是"%20"。

URL中特殊符号的用途及普通意义的编码

+

URL 中+号表示空格

%2B

空格

URL中的空格可以用+号或者编码

%20

/

分隔目录和子目录

%2F

?

分隔实际的URL和参数

%3F

%

指定特殊字符

%25

#

表示书签

%23

&

URL 中指定的参数间的分隔符

%26

=

URL 中指定参数的值

%3D

HTML中的转义字符

转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,“<”和“>”符号用来表示HTML标签,不能当作普通的符号来使用。如果要在HTML文档中使用这些特殊符号原有的意义,就需要定义对应的转义字符串。当浏览器遇到这类转义字符时就会解释为真实的字符而不是特殊用途。另外有些字符在ASCII字符集中没有文字代号,只能用转义字符串来表示,如回车换行符,退格键等。

 

字符

十进制

转义字符

"

"

"

&

&

&

<

<

>

>

不断开空格(non-breaking space)

 

 

 

JavaScript中的转义

JavaScript 中有些字符有特殊用途,如果字符串中想使用这些字符原来的含义,需要使用反斜杠对这些特殊符号进行转义。

正则中也有需要转义的字符:* . ? + $ ^ [ ] ( ) { } | \ /,也是通过\反斜杠进行转义。但是中括号里并不是元字符,不需要转义。

在js中字符串形式的正则表达式匹配一个反斜杠要用四个反斜杠'\\\\', 第一个斜杠是js字符串的转义符,第二个斜杠是斜杠本身,第三个斜杠是js字符串的转义符,第四个斜杠是斜杠本身。将第二、四个反斜杠转为正则中的斜杠后,前面一个为正则中的转义符,将后者变为普通符号。字符串形式的正则表达式里的斜杠也是特殊符号,若要当普通符号使用,也需要转义,用“\\”标示。因为js中反斜扛为特殊符号(转义字符),js字符串里面表示斜杠需要一次转义:“\\”。

在比如:字面量形式/\{.*\}/---->字符串形式'\\{.*\\}'。因为{号为正则中的特殊符号,需要加\转义,而字符串中的\又是js中的特殊符号,需要再加一个\进行转义。

注意正则的字面量形式只需要对正则中的特殊符号转义,不需要对js的特殊符号转义。

 

代码

输出的普通字符

\'

单引号

\"

双引号

\&

和号

\\

反斜杠

\n

换行符

\r

回车符

\t

制表符

\b

退格符

\f

换页符

 

js中对字符串进行编码的方法

1.encodeURI()把字符串作为 URI整体进行编码,所以URI组件中的特殊分隔符号(;/:@&=+$?#),encodeURI() 函数不会进行转义。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )

  encodeURI("http://www.w3school.com.cn")

  输出http://www.w3school.com.cn

2.encodeURIComponent()把字符串作为 URI 组件的一部分(如path/query/fragment等)进行编码,所以用于分隔 URI 各个部分的特殊分隔符号(;/?:@&=+$,#)也会被转义。返回值中某些字符将被十六进制的转义序列替换。该方法也不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( )

  encodeURIComponent("http://www.w3school.com.cn")

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

3.decodeURI()/decodeURIComponent()解码URI中被转义的字符

  decodeURIComponent(%E4%BD%A0%E5%A5%BDjavascript);

  输出你好javascript

4.escape()用于对字符串进行编码,并返回编码字符串。但目前已不推荐使用该函数对URI进行编码。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持码农之家!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

js转义字符 相关电子书
学习笔记
网友NO.674153

详解用Python处理HTML转义字符的5种方式

写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程。在这个过程中,不同的数据源返回的数据格式各不相同,有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有转移字符,这些字符我们需要把它转义成真正的字符。 什么是转义字符 在 HTML 中 、、lt;, 用于标签中,lt; 的转义字符是 ,浏览器渲染 HTML 页面时,会自动把转移字符串换成真实字符。 转义字符(Escape Sequence)由三部分组成:第一部分是一个 lt;),就可以写 。 显示字符 说明 转义字符 小于 空格 小于 大于 符号 copy; 版权 已注册商标 Python 反转义字符串 用 Python 来处理转义字符串有多种方式,而且 py2 和 py3 中处理方式不一样,在 python2 中,反转义串的模块是 HTMLParser。 # python2import HTMLParser HTMLParser().unescape('a=1b=2' Python3 HTMLParser 模块迁移到了 html.parser # python……

网友NO.480320

JSON数据中存在单个转义字符“╲”的处理方法

1、反斜杠(又称右斜杠"\"),还表示转义字符,字符串中不能成单出现; 斜杠(又称左斜杠“/”) 例如,在Android中定义字符串时: 2、若JSON数据中存在奇数个反斜杠时后台又不做处理的前提下,移动端可以过滤该特殊字符: 第一步:构建工具类: public class JSONEncodeUtil { /** * 将奇数个转义字符变为偶数个 * @param s * @return */ public static String getDecodeJSONStr(String s){ StringBuilder sb = new StringBuilder(); char c; for (int i = 0; i s.length(); i++) { c = s.charAt(i); switch (c) { case '\\': sb.append("\\\\"); break; default: sb.append(c); } } return sb.toString(); } } 第二步:在解析JSON字符串前先进行转化处理: 总结 以上所述是小编给大家介绍的JSON数据中存在单个转义字符“\”的处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之……

网友NO.460269

什么是字符串?(2)转义字符与运算符

在之前的文章之中我们了解了 python字符串 ,以及知道了一些字符串的使用方法,学会了如何进行 python字符串截取 以及更新修改字符串。这些都是属于比较简单的一些字符串的处理方法,接下来我们继续来对字符串进行了解以及学习。 python转义字符: 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。详情见下表: 接下来我们来了解一下 python字符串运算符 : 首先我们先来定义 实例变量 a 值为字符串 Hello,b 变量值为 Python: 运算符不是非常的多,而且可以依照上面的表来进行理解与熟练。 接下来我来举一些实例来进行演示: #!/usr/bin/python# -*- coding: UTF-8 -*- a = Hellob = Python print a + b 输出结果:, a + b print a * 2 输出结果:, a * 2 print a[1] 输出结果:, a[1] print a[1:4] 输出结果:, a[1:4] if( H in a) : print H 在变量 a 中 else : print H 不在变量 a 中 if( M not……

网友NO.108094

详解JAVA中转义字符

本文主要介绍JAVA中转义字符,分享给大家。具体如下: 1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符 3.特殊字符:就3个 \":双引号 \':单引号 \\:反斜线 4.控制字符:5个 \' 单引号字符 \\ 反斜杠字符 \r 回车 \n 换行 \f 走纸换页 \t 横向跳格 \b 退格 点的转义:. == u002E 美元符号的转义:$ == u0024 乘方符号的转义:^ == u005E 左大括号的转义:{ == u007B 左方括号的转义:[ == u005B 左圆括号的转义:( == u0028 竖线的转义:| == u007C 右圆括号的转义:) == u0029 星号的转义:* == u002A 加号的转义:+ == u002B 问号的转义:? == u003F 反斜杠的转义: == u005C 下面的程序使用了两个Unicode的转义字符,它们是用其十六进制代码来表示Unicode字符。那么,这个程序会打印什么呢? public class EscapeRout{ publ……

网友NO.868588

python中转义字符是什么意思

python中转义字符是什么意思? 在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。 如下表: 原始字符串 有时我们并不想让转义字符生效,我们只想显示字符串原来的意思,这就要用r和R来定义原始字符串。 如: print r'\t\r' 实际输出为“\t\r”。 推荐学习:《Python教程》 以上就是python中转义字符是什么意思的详细内容,更多请关注码农之家其它相关文章! ……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com