我正在努力改变字符串的大小写(例如asdfghjkl
到AsDfGhJkL
)。
我试着这样做。我找到了一些应该做的代码,但它似乎没有用。
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()));
}
答案 0 :(得分:2)
这是一个快速的功能。它使整个字符串小写,然后以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));
HeLlO WoRlD
将字符串转换为数组的原因是为了使单个字符更易于操作(即不需要String.prototype.concat()
)。
答案 1 :(得分:1)
你应该迭代这个字符串并在字符的上部套管之间交替并对其进行下限:
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);
}
答案 2 :(得分:0)
这里是ES6方法:
function swapCase(text) {
return text.split('').map((c,i) =>
i % 2 == 0 ? c.toLowerCase() : c.toUpperCase()
).join('');
}
console.log(swapCase("test"))