替换字符串中的多个字母 javascript

replacing multiple letter in a string javascript

您好,我正在比较两个字符串,并将字符串 B 中的所有小写字母 - 字符串 A 中的大写字母 - 变为大写,我的代码的问题是它只像这样更改最后一个字母

var i;
var x;

function switchItUp(before, after) {
  for (i = 0; i < before.length; i++) {
    if (before.charAt(i) == before.charAt(i).toUpperCase()) {
      x = after.replace(after.charAt(i), after.charAt(i).toUpperCase());

    }
  }

  console.log(x);
}




switchItUp("HiYouThere", "biyouthere");

这将导致 "biyouThere" 以任何方式将其更改为 "HiYouThere" ?

您必须分配每个更改。现在可以使用了

var i;
var x;

function switchItUp(before, after) {
  for (i = 0; i < before.length; i++) {
    if (before.charAt(i) == before.charAt(i).toUpperCase()) {
      x = after.replace(after.charAt(i), after.charAt(i).toUpperCase());
      after = x; 
      //console.log("inside"+x);
    }
  }

  console.log(x);
}

switchItUp("HiYouThere", "biyouthere");

我已正确修改您的代码以使其正常工作。您需要在每个循环中将操作应用于同一个变量 x,而不是之后。

function switchItUp(before, after) {
  var x = after;
  for (i = 0; i < before.length; i++) {
    if (before.charAt(i) == before.charAt(i).toUpperCase()) {
      x = x.replace(after.charAt(i), after.charAt(i).toUpperCase());

    }
  }

  console.log(x);
}

这是代码:

function switchItUp(before, after) {
  for (var i = 0; i < before.length; i++) {
    if (before.charAt(i) == before.charAt(i).toUpperCase()) {
      after = after.replace(after.charAt(i), after.charAt(i).toUpperCase());
    }
  }
  return after;
}

var after = switchItUp("HiYouThere", "biyouthere");

document.body.innerHTML+='<p style="color: black;">'+ after + '<p/>';