js有没有办法把“\”处理成“\\”

例如把\s转换成\\s

/**
 * 下面是自己测试输出的值
 */

'\s'.length // 1
'\s'.replace(/s/, '') // ''
'\s'.replace(/\\/, '\\\\') // error
阅读 3.8k
4 个回答

你自己其实已经找到答案了,不是么?
在你第一句里

'\s'.length // 1

已经表明了内存中一共就一个字符,即s,所以在这之后无论你怎么替换都不可能替换掉\,因为他根本没有实际存在于内存中。
这是为什么呢?
因为``是个转义符号,换句话来说,它是个运算符。

\n //n转义后为换行,所以返回换行
\s //s的这个运算无效,所以返回s本身

也就是说

'\s'==='s' //true

注意,三等号,完全一致。


也就是说,你必须在js之前把 \s替换写(处理)成
\\s

不知道这个是不是你想要的结果

var s="\s";

if(s=="\\s"){
    s="\\\\s";
}
String.raw`\s`

但只能用于字面量

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题