jQuery ile Form Alanlarında Yalnızca Rakam, Harf veya Özel Karaktere İzin Verme
Telefon numarası, TC kimlik numarası ya da banka hesap numarası gibi alanlarda kullanıcının yalnızca belirli bir karakter kümesini girebilmesi beklenir. Bu kısıtı sunucuya istek gitmeden, kullanıcı yazarken uygulamak; hem yanlış veri girişini en baştan engeller hem de formu dolduran kişiye anlık geri bildirim sağlayarak deneyimi iyileştirir.
jQuery ile bu davranış, ilgili input alanına bağlanan bir keyup olayı içinde düzenli ifade (regex) kullanılarak elde edilir. Kullanıcı her tuşa bastığında alanın güncel değeri regex ile taranır, izin verilmeyen karakterler replace() ile silinir: $('#phoneInput').on('keyup', function () { var temiz = $(this).val().replace(/[^0-9]/g, ''); $(this).val(temiz); }); Bu basit blok, alana yalnızca rakam girilmesine izin verir; harf, boşluk veya özel karakter yazıldığı anda otomatik olarak silinir.
Yalnızca harf girişine izin vermek için Türkçe karakterleri de kapsayan bir desen kullanmak gerekir; aksi halde kullanıcı adı gibi alanlarda 'ç', 'ş', 'ğ' harfleri yanlışlıkla siliniyormuş gibi davranabilir. Rakam ve belirli özel karakterlerin (örneğin '+' veya '-') birlikte istendiği alanlarda ise regex deseni ihtiyaca göre genişletilmelidir; deseni çok dar tutmak kullanılabilirliği, çok geniş tutmak ise kısıtın amacını zedeler.
Bu yöntemin sağladığı kolaylık yalnızca kullanıcı deneyimine yöneliktir; tarayıcı tarafında uygulanan her kısıt, geliştirici araçlarından veya doğrudan bir HTTP isteğiyle kolayca atlatılabilir. Bu nedenle aynı format kuralı sunucu tarafında da -model doğrulama öznitelikleri veya elle yazılan regex kontrolleriyle- mutlaka tekrarlanmalıdır; istemci tarafı doğrulama bir güvenlik önlemi değil, yalnızca bir kullanılabilirlik iyileştirmesidir.