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(",");
}
