如何交替字符串的大小写

How to alternate the case of a string

本文关键字:大小写 字符串 何交替      更新时间:2023-09-26

我正在努力交替字符串的大小写(例如asdfghjklAsDfGhJkL)。我试图这样做。我找到了一些应该这样做的代码,但它似乎不起作用。

var str="";
var txt=document.getElementById('input').value;
for (var i=0; i<txt.length; i+2){
    str = str.concat(String.fromCharCode(txt.charCodeAt(i).toUpperCase()));
}

这是一个快速的函数。它使整个字符串小写,然后以 2 步长遍历字符串,使其他每个字符都大写。

var alternateCase = function (s) {
  var chars = s.toLowerCase().split("");
  for (var i = 0; i < chars.length; i += 2) {
    chars[i] = chars[i].toUpperCase();
  }
  return chars.join("");
};
var txt = "hello world";
console.log(alternateCase(txt));

世界您好

它将字符串转换为数组的原因是使单个字符更易于操作(即不需要String.prototype.concat())。

这里有一个 ES6 方法:

function swapCase(text) {
    return text.split('').map((c,i) => 
        i % 2 == 0 ? c.toLowerCase() : c.toUpperCase()
    ).join('');   
}
console.log(swapCase("test"))

您应该迭代字符串并在字符大写和小写字符之间交替:

for (var i=0; i<txt.length; i++) {
    var ch = String.fromCharCode(txt.charCodeAt(i);
    if (i % 2 == 1) {
        ch = ch.toUpperCase();
    } else {
        ch = ch.toLowerCase();
    }
    str =  str.concat(ch);
}