我试图在Javascript(ES5)中拆分包含大写部分+小写部分的字符串。字符串总是看起来像#34; UPPERlower"。
这是我目前使用的
"ABCabc".match(/^[A-Z]+/g).concat("ABCabc".match(/[a-z]+$/g)) //result is ["ABC", "abc"]
是否有更清晰的代码来实现这一目标?
编辑: Ori Drori的回答和mplungjan的答案对我的问题都是正确的。
答案 0 :(得分:0)
您可以使用|
匹配大写或小写序列:
var result = "ABCabc".match(/[A-Z]+|[a-z]+/g)
console.log(result);

答案 1 :(得分:0)
解构是现代的方式
const s="UPPERlower";
let [,upper, lower] =/([A-Z]+)([a-z]+)/g.exec(s);
console.log(upper,lower);

循环 - 注意:What is the difference between RegExp’s exec() function and String’s match() function?
const s = "UPPERlower UPlow 123 lowUP UPPlowe";
// Note:above will produce low UP using .match(/[A-Z]+|[a-z]+/g) instead of capturing
const re = /([A-Z]+)([a-z]+)/g;
while (match = re.exec(s)) {
[, upper, lower] = match;
console.log(upper, lower)
}

老年人:
var parts=/([A-Z]+)([a-z]+)/g.exec("UPPERlower");
console.log(parts[1],parts[2]);