例如把\s轉(zhuǎn)換成\\s
/** * 下面是自己測(cè)試輸出的值 */ '\s'.length // 1 '\s'.replace(/s/, '') // '' '\s'.replace(/\\/, '\\\\') // error
擁有18年軟件開(kāi)發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
不知道這個(gè)是不是你想要的結(jié)果
var s="\s";
if(s=="\\s"){ ????s="\\\\s"; }
你自己其實(shí)已經(jīng)找到答案了,不是么?在你第一句里
'\s'.length // 1
已經(jīng)表明了內(nèi)存中一共就一個(gè)字符,即s,所以在這之后無(wú)論你怎么替換都不可能替換掉\,因?yàn)樗緵](méi)有實(shí)際存在于內(nèi)存中。
這是為什么呢?
因?yàn)閌`是個(gè)轉(zhuǎn)義符號(hào),換句話來(lái)說(shuō),它是個(gè)運(yùn)算符。
\n //n轉(zhuǎn)義后為換行,所以返回?fù)Q行\(zhòng)s //s的這個(gè)運(yùn)算無(wú)效,所以返回s本身
也就是說(shuō)
'\s'==='s' //true
注意,三等號(hào),完全一致。
也就是說(shuō),你必須在js之前把 \s替換寫(xiě)(處理)成
\\s