Javascript JS替换单词后的反斜杠
如何将单词content后给定字符串中的双反斜杠“\\”替换为单反斜杠\Javascript JS替换单词后的反斜杠,javascript,regex,Javascript,Regex,如何将单词content后给定字符串中的双反斜杠“\\”替换为单反斜杠\ var a = "blah blah \\ \\ content:\"whiskey \\\\"; 因此,它显示为: var a = "blah blah \\ \\ content:\"whiskey \\"; 我尝试了下列方法,但没有成功 a.replace(/content:*\\\\\"/g, "\\")); 特别是问题,您的正则表达式中有一个“,您需要*来匹配任何内容,并且您需要在第一部分周围放置一个组,
var a = "blah blah \\ \\ content:\"whiskey \\\\";
因此,它显示为:
var a = "blah blah \\ \\ content:\"whiskey \\";
我尝试了下列方法,但没有成功
a.replace(/content:*\\\\\"/g, "\\"));
特别是问题,您的正则表达式中有一个“
,您需要*
来匹配任何内容,并且您需要在第一部分周围放置一个组,以便以后可以检索它
不幸的是,由于javascript进行匹配的方式,您确实需要多次运行它,直到它完成所有替换
特别是问题,您的正则表达式中有一个“
,您需要*
来匹配任何内容,并且您需要在第一部分周围放置一个组,以便以后可以检索它
不幸的是,由于javascript进行匹配的方式,您确实需要多次运行它,直到它完成所有替换。与其尝试用正则表达式解决整个问题,我只需要在“content”上断开字符串,在右边进行替换
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 \\\\ \\"
我不想用正则表达式来解决整个问题,我只想在“content”上断开字符串,在右半部分进行替换
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 \\\\ \\"
试着用这个,不用替换方法
a.split('\\\\').join('\\');
结果应该是:
blah blah \ \ content:"whiskey \
试着用这个,不用替换方法
a.split('\\\\').join('\\');
结果应该是:
blah blah \ \ content:"whiskey \
有趣的是,它必须运行多次。确保运行它来进行所有替换的最佳实践是什么?绝对不知道。对于这种特殊情况,您可以一直替换,直到字符串停止更改,或者等待字符串长度停止减少。有趣的是,它必须运行多次。确保运行它来进行所有替换的最佳实践是什么?绝对不知道。对于这种特殊情况,您可以一直替换,直到字符串停止更改,或者等待字符串长度停止减少。这就是。。。不是他们想要的。他说如果他想把双反斜杠换成单反斜杠,那么我就给出我所知道的。他说“在单词‘content’后面的给定字符串内”。你的也会在单词“content”之前替换。哦,好吧,我的答案应该是:
var rpl=a.substring(a.search('content:')),a.length.split('\\\\').join('\\');警报(a.substr(0,a.search('content:'))+rpl)恕我直言,faid,这看起来很复杂。。。不是他们想要的。他说如果他想把双反斜杠换成单反斜杠,那么我就给出我所知道的。他说“在单词‘content’后面的给定字符串内”。你的也会在单词“content”之前替换。哦,好吧,我的答案应该是:var rpl=a.substring(a.search('content:')),a.length.split('\\\\').join('\\');警报(a.substr(0,a.search('content:'))+rpl)恕我直言,费德,这看起来很复杂,我认为这是正确的答案。不幸的是,正则表达式并不总是解决方案(克里斯托弗,你是不是因为更简单而提倡拆分字符串?拆分字符串更好,因为这样你就可以一次完成所有替换。@凯文:是的。在我看来,如果不清楚如何正确应用正则表达式,那么它通常不是合适的解决方案。“内容”您的需求中的反斜杠部分似乎有点正交,因此,如果您分两个不同的步骤处理它们,就更清楚(并且更容易在以后进行更改)。我认为这是正确的答案。不幸的是,正则表达式并不总是解决方案(克里斯托弗,你是不是因为更简单而提倡拆分字符串?拆分字符串更好,因为这样你就可以一次完成所有替换。@凯文:是的。在我看来,如果不清楚如何正确应用正则表达式,那么它通常不是合适的解决方案。“内容”而且,您的需求中的反斜杠部分似乎是一些正交的关注点,因此,如果您分两个不同的步骤来处理它们,就会更清楚(并且更容易在以后进行更改)。