javascript - 如何在不使用任何正则表达式/内置函数(如 split、join、indexOf 等)的情况下将大写字母移到前面
问题描述
function moveCapLetter(moveCap) {
let upr = /[A-Z]/g;
let ul = moveCap.match(upr);
for (let i = 0; i < ul.length; i++) {
let m = moveCap.length;
let indx = moveCap.indexOf(ul[i]);
moveCap =
moveCap.substring(0, indx) + moveCap.substring(indx + 1, moveCap.length);
}
moveCap = ul.join("") + moveCap;
return moveCap;
}
解决方案
我想出的唯一方法是分别测试它是否uppercase
或lowercase
将其转换为uppercase
using toUpperCase
(否则我们如何检查)和 concat 。
function moveCapLetter(str) {
let upper = "",
lower = "";
for (let i = 0; i < str.length; ++i) {
if (str[i] === str[i].toUpperCase()) {
upper += str[i];
} else lower += str[i];
}
return (upper += lower);
}
const result = moveCapLetter("eNviRonMEnT");
console.log(result);
推荐阅读
- javascript - 使用 JS 切换每个框的下拉列表
- javascript - 如何为 SVG rect 设置动画以从下到上填充?
- java - 为什么我的有效 MS access_token 不能用 jwt.ms 解析?
- c++ - 头文件的使用
- mediawiki - mediawiki 页面上的转发链接列表
- java - 执行程序关闭等待终止不起作用
- azure - Azure 存储帐户 - 异地复制:异地复制的频率是多少?如果发生故障,数据丢失会是多少?
- xcode - macOS 中的音频单元 (AUv3) 仅适用于 DAW 中的选定轨道
- reactjs - 未处理的拒绝(TypeError):无法读取未定义的属性“查找”
- flutter - 将列表与另一个列表项进行比较,如果有相似项则返回