字符串中反斜杠字符\的含义

发布时间 2023-04-17 20:26:32作者: 火烈鸟的梦

1、今天遇到一个情况,后台返回数据渲染在列表中,点击URL,可以进行pdf预览,预览时我需要拿到文件名称在页面上面进行展示,于是,我将url复制出来,想在控制台写好获取文件名称的方法后,再写会源代码中,结果就遇到了,解析文件名称怎么也解析不对的情况,我尝试了如下的几种情况,都不正确

var path = ‘Upload\AtsCheck\230413\96_98011552001_V134C0002X_20230413214824.pdf’
path.split('\')
path.split('\\')
path.replace(/\/g, '/')
path.replace(/\\/g, '/')


后来咨询了朋友,原因是,字符串中只有一个反斜杠的话,表示的是转义符,而有两个反斜杠的话表示的才是 \ , 我去查看了后台返回的数据,返回的是'

Upload\\AtsCheck\\230413\\96_98011552001_V134C0002X_20230413214824.pdf’,在渲染到页面上或者通过console.log打印出来后已经是转义后的内容了,所以我们在页面中只会看到有一个反斜杠的情况

2、示例和结果

1、'a\b\c'.split('\')
结果是:
caught SyntaxError: Invalid or unexpected token
2、'a\b\c'.replace(/\/g, '/')
结果是:

caught SyntaxError: missing ) after argument list
3、'a\b\c'.split('\\')
结果是
['a\bc']
4、'a\b\c'.replace(/\/g, '/')
结果是
'a\bc'
5、'a\\b\\c'.replace(/\/g, '/')
结果是
caught SyntaxError: missing ) after argument list
6、'a\\b\\c'.replace(/\\/g, '/')
结果是
'a/b/c'

原因就是:只有一个字符串的情况下反斜杠表示  转义