在javascript中使角色大写不起作用

Nit*_*ish 1 javascript string uppercase

我试图在javascript中大写字符串中的字符,我的代码是:

<button onclick="myFunction()">Try it</button>


<script>
function myFunction() {
    var str = "string";
    for(m = 0; m < str.length; m++){
    if(str[m] == "r"){
      str[m+1] = str[m+1].toUpperCase();
    }
    }
    alert(str);
}
</script>
Run Code Online (Sandbox Code Playgroud)

所以我想要做的是,如果角色是r,则大写下一个角色.但是不是woking意味着它是相同的字符串警报.

elc*_*nrs 6

JavaScript中的字符串是不可变的,您需要创建一个新的字符串并连接:

function myFunction() {
  var str = "string";
  var res = str[0];
  for(var m = 1; m < str.length; m++){
    if(str[m-1] == "r"){
      res += str[m].toUpperCase();
    } else {
      res += str[m];
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但你可以简单地使用正则表达式:

'string'.replace(/r(.)/g, function(x,y){return "r"+y.toUpperCase()});
Run Code Online (Sandbox Code Playgroud)