大文字の文字のJavascript分割文字列


回答:


222

私はこれを次の.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])/);

47
これは単一の大文字を見つけません。:私は次のことを示唆 "thisIsATrickyOne".match(/([A-Z]?[^A-Z]*)/g).slice(0,-1)
andrewmu

18
.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
ディアブロ

9

はい、どうぞ :)

var arr = UpperCaseArray("ThisIsTheStringToSplit");

function UpperCaseArray(input) {
    var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
    return result.split(",");
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.