普通Javascript从小写

时间:2018-01-29 10:49:03

标签: javascript

我试图在Javascript(ES5)中拆分包含大写部分+小写部分的字符串。字符串总是看起来像#34; UPPERlower"。

这是我目前使用的

"ABCabc".match(/^[A-Z]+/g).concat("ABCabc".match(/[a-z]+$/g)) //result is ["ABC", "abc"]

是否有更清晰的代码来实现这一目标?

编辑: Ori Drori的回答和mplungjan的答案对我的问题都是正确的。

2 个答案:

答案 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]);