Javascript Büyük Harf Karakterlerinde Stringi Böl


JavaScript'te bir dizeyi büyük harfe göre diziye nasıl bölersiniz?

Yani bölmek istiyorum:

'ThisIsTheStringToSplit'

içine

['This', 'Is', 'The', 'String', 'To', 'Split']

Cevap #1

Bunu .match() ile şöyle yapardım:

// positive lookahead to keep the capital letters
r = 'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+/g);

console.log(r)

şöyle bir dizi oluşturacak:

['This', 'Is', 'The', 'String', 'To', 'Split']

Düzenle: string.split() yöntemi aynı zamanda regex'i desteklediği için bu şekilde yapılabilir

// positive lookahead to keep the capital letters
r = 'ThisIsTheStringToSplit'.split(/(?=[A-Z])/);

console.log(r)

bu aynı zamanda yorumdaki sorunu da çözecek:

r = "thisIsATrickyOne".split(/(?=[A-Z])/);

console.log(r)

Güncelleme: Başka bir büyük harf ile önce edilmemiş büyük harf karakterinde bölmek için negatif lookbehind kullanılabilir

r = 'SplitOrderID'.split(/(?<![A-Z])(?=[A-Z])/);

console.log(r)

Cevap #2

.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

Bu sayıların da işlenmesini sağlamalı.. sonunda yapılan join tüm dizi öğelerini bir cümleye ekler, eğer aradığınız şey buysa

'ThisIsTheStringToSplit'.match(/[A-Z][a-z]+|[0-9]+/g).join(" ")

Çıktı

"This Is The String To Split"

Cevap #3

Buyur :)

var arr = UpperCaseArray("ThisIsTheStringToSplit");

function UpperCaseArray(input) {
    var result = input.replace(/([A-Z]+)/g, ",$1").replace(/^,/, "");
    return result.split(",");
}

İlgili makaleler