如何在Javascript中交换字符串变量中的两个相邻字符
让字符串='abcdefghij'; 我想要的结果字符串='abdcefhgij'。 应在cd到dc和gh到hg之间进行更改,字符串的其余部分不变如何在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'
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先生!!你让它更简单了@如果答案对您有帮助,请将其标记为已接受。