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’te trim(), bir metnin başındaki ve sonundaki boşluk karakterlerini kaldırıp temizlenmiş yeni bir metin döndürür. Orijinal değişkeni değiştirmez. Bu nedenle özellikle kullanıcıdan alınan form verilerini karşılaştırmadan, kaydetmeden veya doğrulamadan önce kullanılır.

Temel kullanım​


Kod:
const metin = "   JavaScript   ";
const temizMetin = metin.trim();

console.log(temizMetin); // "JavaScript"
console.log(metin);       // "   JavaScript   "

Burada trim() yalnızca baştaki ve sondaki boşlukları kaldırır. Metnin ortasındaki boşluklara dokunmaz:

Kod:
const metin = "  JavaScript ile web geliştirme  ";
console.log(metin.trim());
// "JavaScript ile web geliştirme"

Beklenen çıktı baştaki ve sondaki boşlukları olmayan aynı içeriktir. Çıktıda boşlukların hâlâ görünmesi genellikle boşlukların metnin ortasında olduğunu veya kullanılan karakterin beklenenden farklı olduğunu gösterir.

Nasıl çalışır?​


trim(), metnin başından ve sonundan JavaScript’in boşluk olarak kabul ettiği karakterleri ve satır sonlarını temizler. Metin tamamen boşluklardan oluşuyorsa sonuç boş bir string olur. Metin zaten temizse yine aynı içerikte bir string döner.

Başlangıç veya bitiş için yalnızca bir tarafı temizlemek gerektiğinde şu yöntemler kullanılır:

Kod:
const metin = "   Merhaba   ";

console.log(metin.trimStart()); // "Merhaba   "
console.log(metin.trimEnd());   // "   Merhaba"

Karar vermeyi kolaylaştırmak için yöntemlerin farkı şöyledir:

YöntemTemizlenen bölümTipik kullanım
trim()Baş ve sonGenel metin temizleme
trimStart()Yalnız başlangıçBaşındaki boşluğu korumak istemediğiniz çıktı
trimEnd()Yalnız sonSatır veya alan sonunu temizleme

Çoğu form alanında iki tarafı birden temizlemek için trim() yeterlidir. Girintinin veya metin içindeki boşlukların anlam taşıdığı bir içerikte ise tüm metne körü körüne uygulamak doğru olmayabilir.

Form verisinde uygulanabilir örnek​


Kullanıcı adını kontrol etmeden önce değeri temizleyebilirsiniz:

Kod:
function kullaniciAdiniKontrolEt(deger) {
    if (typeof deger !== "string") {
        return "Kullanıcı adı metin olmalı.";
    }
    const kullaniciAdi = deger.trim();

    if (kullaniciAdi === "") {
        return "Kullanıcı adı boş bırakılamaz.";
    }

    return `Kullanıcı adı: ${kullaniciAdi}`;
}

console.log(kullaniciAdiniKontrolEt("  deniz  "));
// "Kullanıcı adı: deniz"

console.log(kullaniciAdiniKontrolEt("   "));
// "Kullanıcı adı boş bırakılamaz."

Uygulama sırası şöyledir:

  1. Gelen değerin gerçekten string olduğundan emin olun.
  2. Baş ve sondaki gereksiz boşlukları trim() ile kaldırın.
  3. Temizlenmiş değerin boş string olup olmadığını kontrol edin.
  4. Kontrol başarılıysa temizlenmiş değeri kaydedin, karşılaştırın veya sonraki fonksiyona aktarın.

Girdi null veya sayıysa örnek fonksiyon bunu metne sessizce çevirmek yerine açık hata sonucu verir. Bu seçim, yanlış veri türünü gizlememek içindir. Gerçek formda dönen mesajı kullanıcıya nasıl göstereceğinizi ve geçersiz girdide kaydı nasıl engelleyeceğinizi ayrıca bağlayın.

Sık yapılan hatalar​


  • Orijinal değişkenin değiştiğini sanmak: trim() yeni değer döndürür. Sonucu kullanmak için deger = deger.trim() şeklinde yeniden atama yapın veya dönen değeri başka bir değişkende tutun.
  • Metnin ortasındaki boşlukları beklemek: "Ali Veli".trim() sonucu "Ali Veli" olur. Tüm art arda boşlukları düzenlemek ayrı bir işlemdir.
  • String olmayan değerde doğrudan çağırmak: null veya undefined üzerinde trim() çağırmak hata üretir. Değeri önce doğrulayın; sayıları metne çevirmek gerekiyorsa dönüşümü bilinçli yapın.
  • Boşlukları silmeyi doğrulama sanmak: trim() yalnızca dıştaki boşlukları temizler; e-posta biçimi, parola kuralları veya kullanıcı adı geçerliliği gibi kontrolleri kendisi yapmaz.

Sık sorulan sorular​

Kopyaladığım görünmez karakter neden silinmiyor?​

Trim her görünmez karakteri kaldıran genel bir temizleyici değildir. Örneğin bölünemez boşluk U+00A0 başta ve sonda kaldırılır; sıfır genişlikli boşluk U+200B ise JavaScript’in bu boşluk kümesinde değildir. Görünüşe bakmak yerine şüpheli karakterin kod noktasını inceleyin. Metnin anlamını koruyacak açık bir kural olmadan bütün görünmez karakterleri silmeyin.

trim parolalarda kullanılmalı mı?​

Bu karar uygulamanın belgelenmiş kuralına bağlıdır. Parolayı otomatik değiştirmek kullanıcının girdiği gerçek değeri farklılaştırabilir; girişte ve kayıt sırasında tutarsız işlem erişim sorununa yol açar. Kullanıcı adı gibi çevresel boşlukların gereksiz kabul edildiği alanlarda ise doğrulamadan önce kullanılabilir. Tarayıcıdaki trim sunucu doğrulamasının yerine geçmez; istemciyi atlayan istekler de aynı iş kurallarına göre değerlendirilmelidir.
 

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.