如何在Javascript中交换字符串变量中的两个相邻字符

如何在Javascript中交换字符串变量中的两个相邻字符,javascript,string,variables,swap,Javascript,String,Variables,Swap,让字符串='abcdefghij'; 我想要的结果字符串='abdcefhgij'。 应在cd到dc和gh到hg之间进行更改,字符串的其余部分不变 const string1 = 'abcdefghij'.replace(/[cd]/g, (c) => (c == 'c' ? 'd' : 'c')); console.log(string1); const string2 = string1.replace(/[gh]/g, (c) => (c == 'g'

让字符串='abcdefghij'; 我想要的结果字符串='abdcefhgij'。 应在cd到dc和gh到hg之间进行更改,字符串的其余部分不变

    const string1 = 'abcdefghij'.replace(/[cd]/g, (c) => (c == 'c' ? 'd' : 'c'));
    console.log(string1);
    const string2 = string1.replace(/[gh]/g, (c) => (c == 'g' ? 'h' : 'g'));
    console.log(string2);

是我干的。最终得到了string2形式的结果。任何人都可以建议如何一次性完成此操作?

要一次性完成此操作,请创建一个函数,该函数将映射要交换的每个字符,如下所示:

function charReplace(char) {
    if(char == 'c') return 'd';
    if(char == 'd') return 'c';
    if(char == 'g') return 'h';
    if(char == 'h') return 'g';
}
const originalString = 'abcdefghij';
const replacedString = originalString.replace(/[cdgh]/g, ($1) => charReplace($1));
然后可以将此函数作为第二个参数传递给
replace
函数,如下所示:

function charReplace(char) {
    if(char == 'c') return 'd';
    if(char == 'd') return 'c';
    if(char == 'g') return 'h';
    if(char == 'h') return 'g';
}
const originalString = 'abcdefghij';
const replacedString = originalString.replace(/[cdgh]/g, ($1) => charReplace($1));

如果需要映射更多字符,只需在
charReplace
函数中添加
If
块即可。如果它太长,您可以通过将映射保留在数组中并返回正确索引处的元素来实现它。

使用regex replace。这是否回答了您的问题?谢谢你,迈克尔先生,你能帮我写一下吗?@IvicaPesovski它很管用,但是如何缩短它呢?非常感谢你,Ivica先生!!你让它更简单了@如果答案对您有帮助,请将其标记为已接受。