JavaScript ile Bir String'den Sayı Çıkarma: Regex Kullanarak Pratik Çözüm Yazılım

JavaScript ile Bir String'den Sayı Çıkarma: Regex Kullanarak Pratik Çözüm

JavaScript'te HTML form alanlarından gelen string verilerden sayıları çıkarmak için düzenli ifadeler (regex) kullanabilirsiniz. İşte pratik bir yöntem

Web geliştirmede kullanıcı girdileri genellikle metin (string) olarak JavaScript'e iletilir. Bu durum, özellikle form alanlarından gelen veriler için yıllardır değişmeyen bir gerçektir. Ancak geliştiriciler bazen bu string'lerin içindeki sayısal değerleri ayıklamak zorunda kalır. Neyse ki JavaScript, düzenli ifadeler (regular expressions) sayesinde bu işlemi oldukça kolaylaştırır. Özellikle \d+ kalıbı, bir string içinde bir veya daha fazla ardışık rakamı yakalamak için idealdir.

Örneğin, 'x12345david' gibi bir string'iniz varsa ve içindeki sayıyı (12345) almak istiyorsanız, String.match() metodunu bir regex ile kullanabilirsiniz. Kod şu şekilde olur: const string = 'x12345david'; const [match] = string.match(/(\d+)/); match; // '12345'. Bu yöntem, sayının string içindeki konumundan bağımsız olarak çalışır ve ilk eşleşen sayıyı döndürür.

Peki bu regex nasıl çalışır? \d, rakam karakterini (0-9) temsil eder. Artı işareti (+) ise bir veya daha fazla tekrar anlamına gelir. Yani \d+ bir veya daha fazla ardışık rakamı eşleştirir. Parantezler ise bir yakalama grubu oluşturur; bu sayede match() metoduyla dönen dizinin ilk elemanı (index 0) tam eşleşmeyi, ikinci eleman (index 1) ise yakalanan grubu içerir. Burada match() sonucu bir dizi döndürür; [...] ile yapılan destructuring assignment sayesinde doğrudan yakalanan değere ulaşılır.

Bu yöntem birçok senaryoda işe yarasa da, string içinde birden fazla sayı varsa ne yapmalı? Örneğin 'abc123def456' gibi bir string'den tüm sayıları almak isterseniz, global flag (g) kullanmalısınız: 'abc123def456'.match(/\d+/g) // ['123', '456']. Bu durumda match() tüm eşleşmeleri bir dizi olarak döndürür. Ayrıca ondalıklı sayılar için regex'i /\d+\.\d+/ veya /[\d.]+/ şeklinde genişletebilirsiniz.

Teknik Analiz

Pratikte bu yöntem, kullanıcıdan alınan telefon numaraları, yaş, fiyat gibi verileri temizlemek için sıkça kullanılır. Örneğin, bir form alanına kullanıcı 'Fiyat: 250 TL' yazdıysa, sadece 250'yi çıkarmak için bu regex işe yarar. Ancak dikkat edilmesi gereken nokta, eğer string'de sayı yoksa match() null döner; bu durumda destructuring assignment hata verebilir. Bu nedenle null kontrolü yapmak veya varsayılan bir değer atamak iyi bir uygulamadır.

Sonuç olarak, JavaScript'te string'lerden sayı çıkarmak için düzenli ifadeler güçlü ve esnek bir araçtır. \d+ kalıbı basit sayılar için yeterliyken, daha karmaşık durumlar için regex'i özelleştirebilirsiniz. Bu yöntemi projelerinizde kullanarak veri temizleme ve doğrulama işlemlerinizi hızlandırabilirsiniz. Unutmayın, her zaman girdi verilerini doğrulamak ve beklenmedik durumları yönetmek için sağlam kod yazmak önemlidir.

Kaynak: davidwalsh.name

Paylaş: