如何将每第三个字符转换为大写。例如这个字符串 pifedvcbtauzkwgnxyjrhmq
转换为 piFedVcbTauKkwGnxYjrHmq。
这是我到目前为止所做的
function up3rdletter(str){
var i, result = '';
for(i = 0; i < str.length; i++){
if(i > 0 && i % 3 == 0){
result += str[i].toUpperCase();
}else{
result += str[i];
}
}
return result;
}
上面的脚本返回 pifEdvCbtAuzKwgNxyJrhMq
,从第4个字母开始转换。如果我将模数更改为 2,它将变为 piFeDvCbTaUzKwGnXyJrHmQ
最佳答案
这相当简单:JS 中的索引从 0 开始,但你想根据从 1 开始的索引来更改字母,这对人类来说很自然。 ) 解决方案?要么移动余数检查:
result += i % 3 === 2 ? str[i].toUpperCase() : str[i];
...或者继续检查 0,但提前 i
:
result += (i + 1) % 3 ? str[i] : str[i].toUpperCase();
但实际上,我可能会这样写:
result = str.replace(/(..)(.)/g, function(_, m1, m2) {
return m1 + m2.toUpperCase();
});
关于javascript - 将每 3 个字母转换为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27312073/