【问题标题】:Experiementing with regex javascript尝试使用正则表达式 javascript
【发布时间】:2023-04-06 11:16:01
【问题描述】:

给定字符串:"hello \\n world" 我将如何使用替换将其转换为:"hello \\\n world"

.replace(/\\/g, /\\\\\\/)吗?

请记住,我知道这是无效的。但我想看看这是否可以做到。而且我是正则表达式的新手。

【问题讨论】:

  • 你试过了吗?注意:replace 的第二个参数不应是正则表达式。请参阅文档:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 我做了,但它什么也没做。正确答案是什么?
  • "hello \\n world".replace(/\\/g, '\\\\\\') -> "hello \\\n world"
  • "hello \\\n world"\ 后跟换行符。这真的是您想要的还是您希望字符串字面上包含\\\n(三个反斜杠和一个“n”)。

标签: javascript regex replace


【解决方案1】:

试试这个:

    var a = "hello \\n world";

    var b = a.replace(/\\/g, "\\\\\\");

alert(b);

DEMO:

【讨论】:

  • 问题:为什么不使用此正则表达式将 \ 的每个实例替换为 \\\?
  • @ashutosh 是的。 \\ 是一个字符。它的 \ 逃脱了。所以字符串是一个文字 \ 后跟一个 n
  • @MrBurger 我知道 \\ 是一个字符。我要问的是字符串“hello \\n world”有两个文字反斜杠,为什么正则表达式不将每个 \ 替换为 \\\ 并使其成为“hello \\\\n world”?
  • 我得到:\\\\\\n
  • @ashutosh 它只有一个文字反斜杠?如果您在 javascript 控制台中输入上述代码并打印a,它将只显示一个反斜杠。
猜你喜欢
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
相关资源
最近更新 更多