当前位置: 首页 > 知识库问答 >
问题:

javascript - 一个奇怪的可能与js转义相关的问题?

凌运恒
2024-01-08

一个js转义问题

image.png
这是在浏览器的控制台,为什么为出现这种结果,如果要输出'a\b\c\d'这样,请问题如何写

共有3个答案

陈浩
2024-01-08

这种字符串不加上console.log没有意义。

console.log('a\b\c\\d')// c\d

\b是退格符,在打印时会删除掉前面的a\c不是有效的转义字符,会被转换为c\\d已经转义了\

彭允晨
2024-01-08

console.log("a/b/\c/\d");这样就能输出a\b\c\d
这样就行了

越文康
2024-01-08

首先要明确,一个字符串的内容是 a\b\c\d 和它的描述是 a\b\c\d 是不同的。根据 JS 的转义规则,字符串内容 a\b\c\d 的描述是 "a\\b\\c\\d"

如果想把内容 a\b\c\d 修改为 a\\b\\c\\d,那对应的描述应该改为 "a\\\\b\\\\c\\\\d",因为 \\ 会转义成 \。所以 4 个 \ 会转义成 2 个 \

为了避免内容和描述的混淆,在代码中生成 "a\\b\\c\\d" 所描述的字符串,可以用 [..."abcd"].join("\\")(当然直接写成 "a\\b\\c\\d" 也是一样的)。

而在 replace 的时候,/\\/"\\" 描述的都是单个反斜线字符。要想替换成两个反斜线字符需要 "\\\\"

另外,如果是为了处理成 JSON,建议直接用 JSON.stringify 来处理

snipaste_2024-01-08_14-03-25.png

 类似资料:
  • 我们使用的是tomcat7,maxthreads=“200”和maxconnections=10000。我们在主存之外提供所有数据,因此每个HTTP请求完成得非常快,但我们有大量用户在进行非常简单的交互(这是高中主题选择)。但是,我们似乎不太可能有10,000个用户同时打开他们的浏览器在我们的页面上。 我的问题有几个部分: 可能是“maxconnections”参数导致了我们的问题吗? 有什么理由

  • 我遇到了围棋频道的奇怪行为。问题描述如下。 当我运行上面的代码时,我得到如下结果: 频道ch的len和cap看起来很复杂,但代码仍然有效。当我运行此代码时: 结果是:len:0 cap:0是nil:false致命错误:所有goroutine都处于Hibernate状态-死锁! 更重要的是,当我更改第二个代码块时,如下所示:package main 事情又起了作用,我得到了: 那么,谁能告诉我以下问

  • 我正在Windows 10中运行flutter。我以前有一个运行的Android设置。克隆flutter repo和更新路径后,我运行flutter医生-v。日志如下。现在,在搜索了一些解决问题的方法后,我从各种stackoverflow答案中找到了这个解决方案: Flutter.ioAndroid许可证状态未知我首先执行了这个:虽然我不知道如何让它永久。然后在再次运行flutter医生之后,我带

  • 你好,新年快乐; 我有一个关于我在项目中创建的JS文件的奇怪问题。 我正在使用PhpStom和Symfony工作,当我在js文件夹中创建一个JS文件时,不管怎样,如果我将它命名为"main.js"无疑会将这个文件变成一个文本文件,即使我选择创建一个JavaScript文件。 如果我给它取其他名字,它会很好用的。为了纠正这个问题,我可以很容易地更改名称,但这是一个联合项目,我无法更改。 我正在寻找P

  • 背景:基于Element UI 开发的项目,使用到了Tree树型控件 需求:页面有一个tree控件(可选择)如图 这个控件在切换月份的时候可能存在二级节点下有新增的节点或者减少的节点, 如果 ‘一级2’被全部中了,那么切换其他月份如果 ‘一级2’节点下有新增的节点也要勾选上。 树的深度不确定(后端返的),数据量大的时候遍历判断会影响性能,求问各位大佬 有什么比较好的办法处理吗 找出两颗树的差异的节

  • 不是应该为['xiaomings',300]吗?