簡體   English   中英

用\\\\替換\\時出錯

[英]Error replacing \ with \\

我想在一個字符串中替換\\

我這樣做:

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

但它不起作用。

例如:“未使用\\字符的文本”替換。

如果我使用

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

結果是"Text using the ZZZ character".

你需要知道你正在逃避\\本身,並添加額外的\\ s來補償。

首先要注意的是,你通常需要偶數個,因為 - 以這個例子為例 - 用'\\\\\\'你寫一個\\然后轉出結束' ,打破整個代碼行。

所以:

string.replace(/\\/g, '\\\\');
//              ^      ^ ^
//              |      | |
//     one \ to escape | |
//         in regex    | |
//                     | |
//             one \ to escape in
//         string, for EACH of your two
//              new backslashes

你需要4個反斜杠:

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

然后它的工作原理: http//jsfiddle.net/gmQg3/

你錯過了一個\\到替換函數的第二個參數,只有\\\\\\生成錯誤試試這個:

var replaced = str.replace(/\\/g, "\\\\");

使用這個,而不是:

string.replace (/\\/g, "\\\\");

您在替換的字符串中缺少反斜杠。
確保在雙引號字符串中始終使用偶數個反斜杠。
記住這一點的一個簡單方法是每對反斜杠代表一個實際的反斜杠字符,當以這種方式使用時(盡管這不是真的在這里發生)。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM