如何在单词 content 之后的给定字符串中替换双反斜杠“\\”,只有一个反斜杠,\?
var a = "blah blah \\ \\ content:\"whiskey \\\\";
所以它显示为:
var a = "blah blah \\ \\ content:\"whiskey \\";
我尝试了以下但没有成功。
a.replace(/content:*\\\\\"/g, "\\"));
答案 0 :(得分: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 \\\\ \\"
答案 1 :(得分:1)
a.replace(/(content:.*)\\\\/g, "$1\\");
特别是问题,你的正则表达式中有一个"
,你需要.*
来匹配任何东西,你需要在第一部分周围放一个组,以便以后检索它。
不幸的是,你需要多次运行它,直到完成所有替换,因为javascript的匹配方式。
答案 2 :(得分:0)
尝试使用此方法,无需替换方法!
a.split('\\\\').join('\\');
结果应该是:
blah blah \ \ content:"whiskey \