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

时间:2016-01-03 06:34:42

标签: javascript replace charat

您好我希望比较两个字符串并且字符串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”?

3 个答案:

答案 0 :(得分:0)

您必须分配每项更改。它现在正在工作

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");

答案 1 :(得分:0)

我已正确修改您的代码以便工作。您需要在每个循环中将操作应用于相同的变量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);
}

答案 2 :(得分:0)

这是代码:

&#13;
&#13;
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/>';
&#13;
&#13;
&#13;