Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

JavaScript split nedir?​


JavaScript'te split(), bir metni belirlediğiniz ayırıcıya göre parçalayıp diziye dönüştüren String metodudur. Örneğin "elma,armut,muz".split(",") ifadesi ["elma", "armut", "muz"] sonucunu üretir. Metin üzerinde değişiklik yapmaz; yeni bir dizi döndürür.

Temel kullanım​


Genel biçimi şöyledir:

Kod:
metin.split(ayırıcı, limit)

ayırıcı, parçaların hangi karakter veya ifadeden ayrılacağını belirtir. limit ise döndürülecek en fazla parça sayısını sınırlar ve isteğe bağlıdır.

Kod:
const renkler = "kırmızı,yeşil,mavi";
const liste = renkler.split(",");

console.log(liste);
// ["kırmızı", "yeşil", "mavi"]
console.log(liste[1]);
// "yeşil"

Beklenen başarı çıktısı, ayırıcıya göre oluşan bir JavaScript dizisidir. liste[1] gibi bir indeksle parçaya erişebilir, liste.length ile parça sayısını öğrenebilir ve sonucu map() veya forEach() ile işleyebilirsiniz.

Uygulanabilir örnek: kullanıcı adlarını ayırma​


Bir formdan virgülle ayrılmış değer geldiğini varsayalım. Boşlukları da temizlemek için her parçaya trim() uygulayın:

Kod:
const giris = " ali, veli , ayşe ";

const kullanicilar = giris
  .split(",")
  .map((ad) => ad.trim())
  .filter((ad) => ad !== "");

console.log(kullanicilar);
// ["ali", "veli", "ayşe"]

Bu örnek basit virgüllü ad listesi içindir. Tırnak içinde virgül veya satır sonu içerebilen gerçek CSV verisini yalnız split ile güvenilir ayrıştıramazsınız; CSV kurallarını işleyen bir ayrıştırıcı kullanın. Ayırıcı metinde bulunmuyorsa sonuç genellikle tek elemanlı bir dizi olur; örneğin "ali".split(",") sonucu ["ali"] değeridir. Metnin gerçekten virgülle ayrılmış veri içerip içermediğini kontrol etmeniz gerekiyorsa önce length değerini inceleyin.

Ayırıcı ve limit davranışı​


Aşağıdaki farklar, beklenmeyen sonuçların en yaygın nedenleridir:

KullanımSonuçNe zaman kullanılır?
"a-b-c".split("-")["a", "b", "c"]Sabit bir ayırıcı için
"a-b-c".split("-", 2)["a", "b"]İlk parçaları sınırlamak için
"a b c".split(/\s+/)["a", "b", "c"]Değişken boşlukları ayırmak için
"abc".split("")["a", "b", "c"]Basit ASCII örneğinde UTF-16 birimlerini ayırmak için

Limit kalan metni son elemana eklemez; sınır dolduğunda artakalan parça atılır. Regex içinde yakalama grubu varsa yakalanan değerler de sonuç dizisine eklenebilir; yalnız ayırma istiyorsanız gereksiz yakalama grupları kullanmayın.

Düzenli ifade kullanırken /\s+/ gibi bir desen, bir veya daha fazla boşluk karakterini tek ayırıcı olarak ele alır. split() ayırıcısız çağrılırsa metin parçalanmaz; metnin tamamı tek elemanlı bir dizi olarak döner. limit değeri 0 ise sonuç boş dizidir.

Sık yapılan hatalar ve sınırlamalar​


Metnin değişmesini beklemek: split() özgün string'i değiştirmez. Sonucu bir değişkene atamalısınız:

Kod:
let metin = "a,b";
metin.split(",");
console.log(metin); // "a,b"

metin = metin.replace(",", "-");
console.log(metin); // "a-b"

Boş parçaları gözden kaçırmak: Ayırıcı başta, sonda veya art arda bulunuyorsa boş string'ler oluşabilir. "a,,b".split(",") sonucu ["a", "", "b"] olur. Boş değerler geçersizse filter() ile açıkça ayıklayın.

Ayırıcıyı yanlış seçmek: split(" ") yalnızca tek boşluk karakterini ayırır; birden fazla boşluk veya satır sonu varsa düzenli ifade daha uygundur. Ayrıca split(""), emojiler gibi bazı Unicode karakterlerini beklenmedik biçimde bölebilir. Array.from(metin) kod noktalarına göre ilerler; birleşik emoji veya harf+aksan grubunu her durumda tek görünen karakter olarak korumaz. Böyle bir gereksinimde desteklenen ortamlarda Intl.Segmenter ve grapheme bölütlemesi kullanın.

Sık sorulan sorular​


split() ile diziyi tekrar metne nasıl dönüştürürüm?​


Dizinin join() metodunu kullanın. Örneğin ["a", "b"].join(",") sonucu "a,b" olur.

split() sayıları doğrudan number değerine çevirir mi?​


Hayır. Normal metin ayırıcısıyla sonuç parçaları string olur. Sayı bekliyorsanız önce boş parçayı ele alın; Number boş metni sıfıra dönüştürebilir. Her parçayı açıkça dönüştürüp sonlu sayı ve uygulama sınırlarını kontrol edin. Ayrıca split is not a function hatası, girişin beklenen string türünde olmadığını gösterebilir. Null veya undefined üzerinde metot çağırmadan önce veri kaynağını ve türünü doğrulayın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.