javascript - 如何将所有大写字母移动到字符串的开头?

标签 javascript string case-sensitive uppercase letter

我一直在使用我一直在学习/知道的东西来练习简单的解决方案。
我面临的问题是,如何将字符串中的大写字母移到前面?
我已经解决了它,但这不是我的期望,因为我最初的想法是→找到大写字母→将它们放入数组→将大写字母与原始字符串数组连接起来,并在其中删除大写字母。
因此我的问题是,如何删除第一个条件语句中的大写字母,这样我就不需要创建另一个条件语句来查找小写字母并将小写字母存储在数组中?
例如,输入字符串是 'heLLo' → 输出将是 'LLheo' (大写字母现在在前面)。
谢谢!

function capToFront(s) {
    var sp = s.split("");
    var caps = []; 
    var lower = []
    for (var i = 0; i < sp.length; i++)
        {
            if (sp[i] == sp[i].toUpperCase()){              
                caps.push(sp[i]);
           **//How can i remove the capital letter in "sp" array as I've pushed them into the caps Array**

            }
            if (sp[i] == sp[i].toLowerCase()){
                lower.push(sp[i]);
            }
        }
    return caps.join("").concat(lower.join(""));
}

最佳答案

RegExp ,您可以在没有任何循环的情况下在一行中完成您的目标:

const result = [...'heLLo'].sort(l => /[A-Z]/.test(l) ? -1 : 0).join('');

console.log(result); // LLheo

如果要确保保留大写字母之间的原始顺序,则会稍长一些:

const result = [...'Hello World Foo Bar']
  .sort((a, b) => /[A-Z]/.test(a) ? /[A-Z]/.test(b) ? 0 : -1 : 0)
  .join('');

console.log(result); // HWFBello orld oo ar

关于javascript - 如何将所有大写字母移动到字符串的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62977281/

相关文章:

arrays - 是否可以在 PowerShell 中使 IndexOf 不区分大小写?

javascript - 幻灯片放映中的 Zindex 图像

javascript - Webview 上的自动启动 html5 视频不适用于 Android 4.2.2

javascript - 如何在 Ektron v9 中使用 JS.RegisterJSInclude()?

python - 为什么 str.strip() 比 str.strip (' ' 快得多)?

django 'urlize' 字符串形式的文本就像推特

sql - 如何在 Oracle 数据库查询中忽略区分大小写

javascript - 创建指令,将每个列表元素包装在 Bootstrap 面板内,并带有删除、重新排序等控件。

javascript - 使用子字符串在javascript中剪切并重新构造字符串

jquery .append() 区分大小写的元素