0

如何在单词content之后的给定字符串中替换双反斜杠“\\” ,只有一个反斜杠 \?

var a = "blah blah \\ \\ content:\"whiskey \\\\";

使其显示为:

var a = "blah blah \\ \\ content:\"whiskey \\";

我尝试了以下但没有成功。

 a.replace(/content:*\\\\\"/g, "\\"));
4

3 回答 3

3

与其试图用正则表达式解决整个问题,我只是打破“内容”上的字符串并在右半边进行替换。

function fn(x) { 
    var i = x.indexOf("content");
    return x.substr(0,i) + x.substr(i).replace(/\\\\/g, "\\");
}

// this evaluates true
fn("blah blah \\ \\ \\\\ content:\"whiskey \\\\\\\\ \\\\") ==
   "blah blah \\ \\ \\\\ content:\"whiskey \\\\ \\"
于 2012-11-24T04:31:25.480 回答
1
a.replace(/(content:.*)\\\\/g, "$1\\");

特别是问题,您"的正则表达式中有一个,您需要.*匹配任何内容,并且您需要在第一部分周围放置一个组,以便稍后检索它。

不幸的是,由于 javascript 的匹配方式,您确实需要多次运行它,直到它完成所有替换。

于 2012-11-24T04:09:45.717 回答
0

尝试使用这个,没有替换方法!

a.split('\\\\').join('\\');

结果应该是:

blah blah \ \ content:"whiskey \
于 2012-11-24T04:38:32.230 回答