如何将字符串中的'?'替换为'\?'以得到目标输出字符串`hm\?`
如何将字符串中的'?'替换为'?'以得到目标输出字符串
hm\? 嘿,我来帮你搞定这个字符串替换的小问题!你之前试的代码没成功,其实是踩了JavaScript转义字符的小坑——在JS里,反斜杠\是个“特殊角色”,它的作用是转义后面的字符,所以你写的'\?',最终只会被解析成一个普通的?,相当于替换了个寂寞~
那怎么才能得到真正的\?呢?很简单,要表示一个实实在在的反斜杠字符,你得用两个反斜杠\\来“提醒”JS:“我要的就是一个单独的反斜杠哦”。直接看正确的写法吧:
const test = (str) => console.log(JSON.stringify(str)) // 用于正确显示转义字符 // 正确的替换代码 test('hm?'.replace('?', '\\?')) // 运行后会输出:"hm\?"
这样写的话,第二个参数里的'\\?'会被JS解析成\?这个字符组合,替换掉原来的?之后,就能精准得到你想要的hm\?啦。
备注:内容来源于stack exchange,提问作者Matej Vesel
相关产品推荐
相关产品推荐

