回答:
私はこれを次の.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(" ")
これは数値も処理する必要があります。最後に結合すると、すべての配列項目が1つの文に連結されます。
'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、小型ケースの文字列(ommitting ring)の後に3。
はい、どうぞ :)
var arr = UpperCaseArray("ThisIsTheStringToSplit");
function UpperCaseArray(input) {
var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
return result.split(",");
}