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.
- 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ş.
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
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]
dizesiHello\. \(World\) \[2025\]
şeklinde dönüştürülür.
- 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.
- 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: