如何在 JavaScript 中转义反斜杠?

IT技术 javascript regex
2021-03-06 02:15:07

我想用安全\替换替换反斜杠 => '\'

但是当我申请替换“\”时,我的代码替换所有“#”失败:

el = el.replace(/\#/g, '#'); // replaces all '#' //that's cool
el = el.replace(/\\/g, '\'); // replaces all '\' //that's failing

为什么?

2个回答

打开控制台并输入

'\'.replace(/\\/g, '\'); 

失败,因为字符串中的斜杠实际上不在字符串中,它正在转义 '

'\\'.replace(/\\/g, '\');

有效,因为它需要一个斜线并找到它。

你的正则表达式有效。

/\\/g查找单个反斜杠。在任何时候,我们都不会用双人代替单人。第一个反斜杠转义第二个,因此该正则表达式在全局范围内查找单个反斜杠。处理“域\用户”,/\\/g应该可以正常工作。
2021-04-19 02:15:07
那么你如何处理“域\用户”呢?您必须首先将单个反斜杠替换为双,然后使用 .replace(/\\/g, '\'); ?
2021-05-04 02:15:07

您可以使用String.raw方便地将斜杠添加到您的字符串文字中。例如String.raw`\a\bcd\e`.replace(/\\/g, '\');