Skip to content

Instantly share code, notes, and snippets.

@alpgul
Created March 14, 2025 17:38
Show Gist options
  • Save alpgul/0eda9fa491c14a102745f1da60d4e207 to your computer and use it in GitHub Desktop.
Save alpgul/0eda9fa491c14a102745f1da60d4e207 to your computer and use it in GitHub Desktop.
RegExp.escape, bir dizedeki özel karakterleri otomatik olarak kaçış karakteri (\) ile önceler. Bu, dizeyi bir regex ifadesinde güvenle kullanmayı sağlar.

RegExp.escape Nedir ve Nasıl Kullanılır?

RegExp.escape, TC39 tarafından önerilen bir özelliktir ve düzenli ifadelerde (regex) özel karakterlerin kaçışını kolaylaştırmayı amaçlar. Bu özellik, bir dizedeki özel karakterleri otomatik olarak kaçış karakteri (\) ile önceler, böylece bu dizeyi bir regex ifadesinde güvenle kullanabilirsiniz.

Özellik Hakkında Detaylı Bilgi

  • Amaç: Düzenli ifadelerde kullanılan özel karakterlerin (örneğin [, ], (, ), *, +, ?, ., \, ^, $, |, {, }) otomatik olarak kaçışını sağlamak.
  • Kullanım Senaryoları: Kullanıcı girdilerini regex ifadelerinde kullanırken güvenliği artırmak, dinamik regex oluştururken hataları önlemek.
  • Durum: Şu anda TC39'nin öneri aşamasında (proposal stage) ve henüz resmi olarak ECMAScript standardına dahil edilmemiş.

Örnek Kullanım

Aşağıda RegExp.escape özelliğinin nasıl kullanılabileceğine dair bir örnek bulunmaktadır:

// Örnek bir dize
const userInput = "Hello. (World) [2025]";

// RegExp.escape kullanarak özel karakterleri kaçış
const escapedInput = RegExp.escape(userInput);

// Oluşturulan regex ifadesi
const regex = new RegExp(escapedInput);

// Test
console.log(regex.test("Hello. (World) [2025]")); // true
console.log(regex.test("Hello World 2025")); // false

Açıklama

  • RegExp.escape, userInput içindeki özel karakterleri ((, ), [, ], .) kaçış karakteri (\) ile önceler.
  • Bu sayede, userInput dizesi bir regex ifadesinde güvenle kullanılabilir hale gelir.
  • Örneğin, Hello. (World) [2025] dizesi Hello\. \(World\) \[2025\] şeklinde dönüştürülür.

Avantajlar

  • Güvenlik: Kullanıcı girdilerini regex ifadelerinde kullanırken oluşabilecek güvenlik açıklarını önler.
  • Kolaylık: Özel karakterlerin manuel olarak kaçışını gerektirmez, bu da kodun daha temiz ve okunabilir olmasını sağlar.

Sınırlamalar

  • Henüz resmi olarak ECMAScript standardına dahil edilmediği için tarayıcılar veya Node.js gibi ortamlarda desteklenmeyebilir.
  • Polyfill veya kütüphaneler kullanılarak bu özellik şimdilik uygulanabilir.

Eğer bu özelliği şu anda kullanmak isterseniz, bir polyfill veya benzer bir kütüphane kullanmanız gerekebilir. Anladım! Makalenin sonuna referans linki ekleyeceğim. İşte güncellenmiş içerik:

Referanslar:


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment