我很难在JS的某些文本中替换某些\_
。
我已经尝试了fromCharCode
和split
的各种组合,但似乎找不到成功。
在所有这些情况下,输出都与输入相同,我无法删除或替换垃圾字符。 JS似乎看不到反斜杠下划线。想知道它是否与Unicode字符串有关?
建议表示赞赏!
let v1 = {
s: "生病以后,爸爸\_什么\_酒\_都\_不\_能喝了"
}
let v2 = { ...v1 } // copy
let v3 = { ...v2 } // copy
v2.s = v2.s.replace(/\\/g, "X")
v3.s = v3.s.split(String.fromCharCode(92)).join("Y")
console.log("v1", v1)
console.log("v2", v2)
console.log("v3", v3)
在这一点上,我可能会弄混sed脚本;。;
相关检查不能解决: Javascript and backslashes replace Replace back slash (\) with forward slash (/) Converting backslashes into forward slashes using javascript does not work properly?
答案 0 :(得分:1)
当您像这样分配字符串时:
let v1 = {
s: "生病以后,爸爸\_什么\_酒\_都\_不\_能喝了"
}
所有反斜杠将被删除,您的结果字符串将为生病以后,爸爸_什么_酒_都_不_能喝了
因此,您还必须转义那些反斜杠:
let v1 = {
s: "生病以后,爸爸\\_什么\\_酒\\_都\\_不\\_能喝了"
}
现在要达到预期效果,可以使用下一个替换regexp:
v1.s = v1.s.replace(/\\_/g, 'X');