A. javascript字符串的转换
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 al或者左右连接形式。总会丢掉(+)
这个时候可以尝试用一下URL特殊字符转义
用JS的encodeURI()函数或者直接改成相对应的十六进制的值
看网上介绍encodeURI函数也是讲URI转义
(转自另外一个问题的回答:知道搜索条目--》网络的%符号是什么意思)
由于度娘会吞链接,所以不妨链接了。
B. js解析json字符串报错解决方案(带有转义字符的json字符串)
场景:从后台请求回来的数据中带有json格式的字符串,需要处理成json对象才能进行操作。
JSON.parse():
使用JSON.parse方法来解析json字符串。
报错: Uncaught SyntaxError: Unexpected token } in JSON at position 30
Uncaught SyntaxError: Unexpected token ' in JSON at position 1
这种报错是由于,json字符串的格式有问题,json字符串中对象的最后一个元素后面不可以再加','逗号了。比如'{ "name": "cxh", "sex": "man",}'使用JSON.parse()就会报错,而且 在json字符串中键值对需要用双引号引起来。
解决方案:使用eval()
报错:SyntaxError: Unexpected token e in JSON at position 1
由于请求回来的json中带有转义字符,所以才会报这个错误。
解决方案:带有转义字符的json字符串使用json
json数据使用JSON.parse()有浏览器是不兼容JSON这个对象的,或者有的里面有JSON.parse解析不了的东西,所以暂时还是使用: eval("("+data+")");
json源数据字符有转义符应该是必须的,你要看解析出来后是否有多余的转义符
json转字符串JSON.stringify总体效果还可以:
前导 0 和小数点报错:SyntaxError: JSON.parse: expected ',' or '}' after property value
SyntaxError: JSON.parse: unterminated fractional number
Uncaught SyntaxError: Unexpected number in JSON at position 25
Uncaught SyntaxError: Unexpected token } in JSON at position 26
数字不能用 0 开头,比如01,并且你的小数点后面必须跟着至少一个数字。
C. js转义字符使用问题
+"<td><a href=\"\">"+加钱+"</a></td>"//此处出错报非法字符illegal character
+"<td><a href=\"\">"+结账回+"</a></td>"
修改为答:
+"<td><a href=\"\">加钱</a></td>"//此处出错报非法字符illegal character
+"<td><a href=\"\">结账</a></td>"
D. js链接&被转义了,要怎么处理
默认情况下中文,空格,‘&’等字符都会被浏览器自动转义一次。
如果使用的转义方法就是版js原生权自带的encodeURIComponent方法进行转义。
解决办法:
可以让后台的兄弟帮助多编译一次。这样就不会出现这个问题了。
可以自己编译一次,用decodeURIComponent('%26')。
下面简单的藐视一下decodeURIComponent() 这个方法:
定义和用法
decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
语法
decodeURIComponent(URIstring)
参数
URIstring 必需。一个字符串,含有编码 URI 组件或其他要解码的文本。
返回值
URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。
E. 用js 可以恢复转义的字符正常显示吗
可以,做一个json数据表,把正常字符和转义字符一一对应,使用的时候查表就可以了
F. js 如何将转义字符 转回正常字符
用 unescape() 函数