我有一个字符串,看起来像“ R U R'U'R'F R2 U'R'U'R U R'F'”
我想用F替换所有R,并用R替换所有F。问题是,当我使用如下所示的多个.replaces时,R更改为F,然后又更改回R,导致没有更改。
alg = alg.replace(/R/g, "F").replace(/F/g, "R");
此外,此刻我的.replaces看起来像这样:
alg = alg.replace(/R/g, "F");
alg = alg.replace(/L/g, "B")
alg = alg.replace(/F/g, "R");
alg = alg.replace(/B/g, "L");
是否有一种更干净的布局方法,而不必将它们全部堆叠在一行上?
对于这两个问题的任何帮助,我将不胜感激。 谢谢。
答案 0 :(得分:6)
使用带有替换功能的单 replace
,以便所有替换一次发生,以确保刚刚被替换的字符不会再次被替换:< / p>
const input = "R U R' U' R' F R2 U' R' U' R U R' F";
const replaceObj = {
R: 'F',
F: 'R'
}
const output = input.replace(/[RF]/g, char => replaceObj[char]);
console.log(output);