Answers:
我这样做.match()是这样的:
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);
它将使像这样的数组:
['This', 'Is', 'The', 'String', 'To', 'Split']
编辑:由于该string.split()方法还支持正则表达式,因此可以这样实现
'ThisIsTheStringToSplit'.split(/(?=[A-Z])/); // positive lookahead to keep the capital letters
这也将通过注释解决问题:
"thisIsATrickyOne".split(/(?=[A-Z])/);
"thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1)
.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
这也应该处理数字..如果您要查找的是最后的连接,则将所有数组项连接到一个句子
'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")
输出量
"This Is The String To Split"
'ThisIs8TheSt3ringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")将输出This Is 8 The St 3 To Split,并在ring之后省略小写的string()3。
这个给你 :)
var arr = UpperCaseArray("ThisIsTheStringToSplit");
function UpperCaseArray(input) {
var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
return result.split(",");
}