JavaScript Slug Oluşturucu

Saf JavaScript ile tarayıcıda veya Node.js'te bağımlılık olmadan temiz URL slugları oluşturun. İşin sırrı String.prototype.normalize("NFKD"): aksanlı karakterleri bileşenlerine ayırır (é → e + aksan işareti) ve tek bir regex ile aksanlar temizlenir; bunsuz "café" ya "caf" olur ya da aksan URL'de kalır. Aşağıdaki kod ayrıca elle yazılan çoğu versiyonun atladığı iki uç durumu da çözer: tekrarlanan ayraçları tekilleştirme ve baştaki/sondaki tireleri kırpma. Nerede kullanırsınız: kullanıcı başlık yazarken canlı slug üretimi (debounce edilmiş input ile), statik site permalink'lerini build sırasında oluşturma veya CMS başlıklarını API'ye göndermeden temizleme. Dikkat: NFKD'nin eşleyemediği alfabelerde (Kiril, Yunanca, CJK) normalize() karakterleri olduğu gibi bırakır — ya Unicode slug'lara izin verin (modern tarayıcılar ve Google sorunsuz işler) ya da yukarıdan dil seçtiğinizde bu aracın uyguladığı gibi bir transliterasyon haritası ekleyin. Yüksek trafikli Node.js servislerinde slug benzersizlik kontrollerini önbelleğe alın — regex ucuzdur ama veritabanı sorgusu değildir. Yukarıda herhangi bir başlığı deneyin, aşağıdaki fonksiyonu kopyalayın.

function slugify(text) {
  return text
    .toString()
    .normalize('NFKD')
    .replace(/[\u0300-\u036f]/g, '') // remove accents
    .toLowerCase()
    .trim()
    .replace(/[^a-z0-9 -]/g, '')
    .replace(/\s+/g, '-')
    .replace(/-+/g, '-');
}

slugify('Hello World! SEO URL'); // "hello-world-seo-url"