javascript - 替换 unicode 文本中的 JS 反斜杠

标签 javascript replace backslash

我在尝试替换 JS 中某些文本中的一些 \_ 时遇到了困难。 我尝试了 fromCharCodesplit 的各种组合,但似乎无法成功。

在所有这些情况下,输出与输入相同,我无法删除或替换垃圾字符。看来反斜杠下划线对于 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?

最佳答案

当您像这样分配字符串时:

let v1 = {
  s: "生病以后,爸爸\_什么\_酒\_都\_不\_能喝了"
}

所有反斜杠都将被删除,您的结果字符串将生病了,爸爸_什么_酒_都_不_能喝了

所以你也必须转义这些反斜杠:

let v1 = {
  s: "生病以后,爸爸\\_什么\\_酒\\_都\\_不\\_能喝了"
}

现在要达到您的预期结果,您可以使用下一个替换正则表达式:

v1.s = v1.s.replace(/\\_/g, 'X');

关于javascript - 替换 unicode 文本中的 JS 反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53071455/

相关文章:

javascript - 返回 JS 数组中最大的电话号码

java - Groovy 文字正则表达式/\\/未编译

python - 原始字符串、Python 和 re,普通字符与特殊字符

javascript - 如何从 js.erb 文件传递​​部分 html.erb 表单而不仅仅是一条消息?

javascript - 将多组数据加载到一张表中/在数据模型中创建子字段

replace - IPython Notebook 键盘快捷键搜索文本

python - 将模式替换为Python中的连续数字字符串

file-io - 如何在 LaTeX 中打印反斜杠

用于代码语法高亮显示的 Javascript 库

javascript - 无法访问 JSON 子元素