javascript 怎么把字符串中的特殊符号转义

JavaScript012

javascript 怎么把字符串中的特殊符号转义,第1张

js中的特殊字符,加上转义符\ 。

例如:

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

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

1、如果手动转的话,用replace()函数将字符替换成对应的字符。

2、js中有一个专门的转16进制的编码函数:encodeURI()

网址URL中特殊字符转义编码

字符 - URL编码值

空格 - %20

" - %22

# - %23

% - %25

&- %26

( - %28

) - %29

+ - %2B

, - %2C

/ - %2F

: - %3A

- %3B

<- %3C

= - %3D

>- %3E

? - %3F

@ - %40

\ - %5C

| - %7C

URL特殊字符转义

URL中一些字符的特殊含义,基本编码规则如下:

1、空格换成加号(+)

2、正斜杠(/)分隔目录和子目录

3、问号(?)分隔URL和查询

4、百分号(%)制定特殊字符

5、#号指定书签

6、&号分隔参数

如果需要在URL中用到,需要将这些特殊字符换成相应的十六进制的值

+ %2B

/ %2F

? %3F

% %25

# %23

&%26

由于在项目中经常要用AJAX传SQL给后台服务端

会遇到select num+1 from dual或者左右连接形式。总会丢掉(+)

这个时候可以尝试用一下URL特殊字符转义

用JS的encodeURI()函数或者直接改成相对应的十六进制的值

看网上介绍encodeURI函数也是讲URI转义

(转自另外一个问题的回答:知道搜索条目--》百度的%符号是什么意思)

由于度娘会吞链接,所以不妨链接了。

//转码

var url = encodeURIComponent("http://localhost:8888/xx/yy?a=aaa&b=bbb&c=ccc")

//解码

var ourl = decodeURIComponent(url)

另外还有encodeURI/decodeURI,escape/unescape,最常用的是encodeURIComponent

/decodeURIComponent它可以将参数中的中文、特殊字符进行转义,而不会影响整个URL。