javascript - 将每 3 个字母转换为大写

标签 javascript

如何将每第三个字符转换为大写。例如这个字符串 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/

相关文章:

javascript - 如何检查每个函数内的长度

javascript - 无需对任何 DOM 元素执行用户操作即可触发文件输入字段

javascript - Gulp clean/del 行为已经改变

javascript - 如何嵌套查找MongoDB? JavaScript

javascript - 使用 jQuery 动画 addClass/removeClass

javascript - 使用 moment.js 提取时区编号

javascript - 检查某些 a 标签的 href 属性是否与当前页面 URL 匹配(使用 jQuery)?

javascript - Promise 中的 requestAnimationFrame

javascript - 为什么无法正确读取用户输入和选择?

javascript - 当我使用 gruntfile.js 保存 other.less 时如何编译 main.less