
Bu kılavuz, JavaScript'te metin (string) işleme için en sık kullanılan yöntemleri pratik örneklerle açıklar. Aşağıda kesme (substring, slice), arama (includes, indexOf, match), değiştirme (replace, replaceAll) ve template literal kullanımını bulacaksınız. Ana referans olarak MDN dokümanlarına bağlantılar verilmiştir.
substring(start[, end]) ve slice(start[, end]) benzer görünse de davranışları farklıdır:
Daha fazla teknik detay için MDN String dokümanına bakabilirsiniz: https://developer.mozilla.org/pt-PT/docs/Web/JavaScript/Reference/Global_Objects/String (MDN).
Örnek:
const s = "Hello World";
// substring: argümanlar takas edilir
console.log(s.substring(6, 0)); // "Hello "
// slice: negatif indeks kullanımı
console.log(s.slice(-5)); // "World"
// slice ile aralık (start > end) boş döner
console.log(s.slice(8, 2)); // ""
Aşağıdaki fonksiyonlar yaygın arama ihtiyaçlarını karşılar:
Örnek:
const s = "Hello World";
console.log(s.includes("World")); // true
console.log(s.indexOf("World")); // 6
console.log(s.match(/o/g)); // ["o", "o"]
Basit regex kullanımı: /pattern/flags şeklinde yazılır. Örneğin /a/i (büyük/küçük harf duyarsız), /\d+/ (bir veya daha fazla rakam) gibi. Regex'ler güçlüdür ama karmaşık hâle gelebilir; kısa referanslar için MDN rehberlerine bakın.
replace(searchValue, replaceValue) ve replaceAll(searchValue, replaceValue) arasındaki önemli farklar:
/g (global) varsa tüm eşleşmeleri değiştirir.Örnek:
const text = "foo Foo foo";
// replace ile ilk eşleşme
console.log(text.replace('foo', 'bar')); // "bar Foo foo"
// replaceAll ile tüm küçük "foo"'lar değişir
console.log(text.replaceAll('foo', 'bar')); // "bar Foo bar"
// regex ile tüm eşleşmeleri değiştirmek
console.log(text.replace(/foo/gi, 'bar')); // "bar bar bar"
// replaceAll ile regex kullanıyorsanız /g gerekli
console.log(text.replaceAll(/foo/gi, 'bar')); // "bar bar bar"
Not: replaceAll string olarak verilen değeri düzenli ifade gibi değerlendirmez; özel karakterler literal olarak ele alınır. Regex davranışı istiyorsanız regex kullanın ve /g bayrağını unutmayın.
Template literal'lar (backtick ile yazılan `...`) değişken ve ifade gömme (interpolation) ile çok satırlı string oluşturmayı kolaylaştırır. Söz dizimi: ${expression}. MDN'de template literal'ların kapsamlı açıklaması bulunur: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals.
Örnek:
const name = 'Ada';
const greeting = `Merhaba ${name}! Bugün: ${new Date().toLocaleDateString()}`;
console.log(greeting);
// Çok satırlı string
const poem = `Birinci satır İkinci satır`;
console.log(poem);
Template literal'lar ayrıca tagged templates ile daha gelişmiş işler yapmak için kullanılabilir (ör. güvenli kaçış, biçimlendirme). Bu ileri bir konudur; temel kullanım için ${expression} yeterlidir.
/g bayrağı olduğundan emin olun; aksi hâlde hata riski vardır. (MDN referansı ektedir.)const text = "Bu bir örnek";
const normalized = text.replace(/\s+/g, ' ').trim();
console.log(normalized); // "Bu bir örnek"
const csv = "3,14; 2,71";
const fixed = csv.replace(/,/g, '.'); // basit örnek console.log(fixed); // "3.14; 2.71"
const names = ["ali", "ayşe"];
const cap = names.map(n => `${n[0].toUpperCase()}${n.slice(1)}`);
console.log(cap); // ["Ali", "Ayşe"]
Bu makaledeki örnekler eğitim amaçlıdır; gerçek uygulamada farklı dillerdeki karakter kümeleri (Unicode), normalizasyon (NFC/NFD) ve performans konuları göz önünde bulundurulmalıdır. Ayrıca replaceAll ve bazı yeni özelliklerin ortam desteğini kontrol etmek iyi bir uygulamadır. Detaylı teknik referanslar için MDN sayfalarını inceleyin.
Yorumlar