例如把\s转换成\\s
/** * 下面是自己测试输出的值 */ '\s'.length // 1 '\s'.replace(/s/, '') // '' '\s'.replace(/\\/, '\\\\') // error
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
不知道这个是不是你想要的结果
var s="\s";
if(s=="\\s"){ s="\\\\s"; }
你自己其实已经找到答案了,不是么?在你第一句里
'\s'.length // 1
已经表明了内存中一共就一个字符,即s,所以在这之后无论你怎么替换都不可能替换掉\,因为他根本没有实际存在于内存中。这是为什么呢?因为``是个转义符号,换句话来说,它是个运算符。
\n //n转义后为换行,所以返回换行\s //s的这个运算无效,所以返回s本身
也就是说
'\s'==='s' //true
注意,三等号,完全一致。
也就是说,你必须在js之前把 \s替换写(处理)成\\s
不知道这个是不是你想要的结果
var s="\s";
你自己其实已经找到答案了,不是么?在你第一句里
'\s'.length // 1
已经表明了内存中一共就一个字符,即s,所以在这之后无论你怎么替换都不可能替换掉\,因为他根本没有实际存在于内存中。
这是为什么呢?
因为``是个转义符号,换句话来说,它是个运算符。
\n //n转义后为换行,所以返回换行\s //s的这个运算无效,所以返回s本身
也就是说
'\s'==='s' //true
注意,三等号,完全一致。
也就是说,你必须在js之前把 \s替换写(处理)成
\\s