首页 > 解决方案 > 如何在不使用任何正则表达式/内置函数(如 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;
}

标签: javascriptarrayslogic

解决方案


我想出的唯一方法是分别测试它是否uppercaselowercase将其转换为uppercaseusing 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);


推荐阅读