v2.5.2
Giriş yap

Girilen değerin RegExp olup olmadığını anlamak.

erkamalper
461 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Bir function'a gönderilen bir değerin string mi regexp'mi olduğunu nasıl ayırt ettirebilirim?

Cevap yaz
Cevaplar (8)
akincankoc
1042 gün önce

instanceof genel kullanımı bir türü kontrol etmek için kullanılır genellikle eğer şöyle bir yapı varsa

    let a = new RegExp(/[a-z]/);

    if(a instanceof RegExp){
      console.log("Regexp")
    }

bu şekilde kullanbilirsin instanceof 'u umarım bilgiler yararlı olmuştur.

erkamalper
1042 gün önce

Bunu deneyeceğim hocam, teşekkür ederim.

erkamalper
1042 gün önce

Test methodunu biliyorum zaten, fakat yapmak istediğim şey;
Fonksiyona string gönderildiyse bir işlem, regex gönderildiyse farklı bir işlem yaptırmak.

ugurdev
1042 gün önce

bu işlemi RegExp'in test methodu ile çözebilirsiniz.

Örnek(Javascript) :

const str = 'table football';

const regex = new RegExp('foo*');
const globalRegex = new RegExp('foo*', 'g');

console.log(regex.test(str));
// expected output: true

bu işlem sonucunda size true veya false dönecek.

method hakkında daha fazla detay isterseniz : Mozilla Dev

erkamalper
1042 gün önce

Hocam doğru söylüyorsunuz, fakat ben, hani belki insanceof gibi şeyler kullanılarak yapılamaz mı diye düşünmüştüm.

akincankoc
1042 gün önce

Şöyle bir handikap var RegExp dediğiniz şey zaten aslında bir string parçalama yöntemi yani belirli parçalardan oluşuyor, aynı zamanda
bir string veri türü olduğu için ayırt etme konusunda daha iyi bir yol izleneceğini düşünmüyorum. Yani RegExp yazarken belirli standart
lara uymak gerektiğinden ötürü en kısa yöntem bu olmasada en mantıklı çözüm olduğuna inanıyorum.

erkamalper
1042 gün önce

Evet, söylediğiniz mantıklı fakat bunun en doğru yol olduğunu düşünmüyorum.

akincankoc
1042 gün önce

Öncelikle bir pattern belirmelelisin kendi açından yada kullanılan patternları göz önünde bulundurarak bir şema oluşturabilirsin.

Örn(Javascript);

    let a = "/^[a-zAz]/";
    let patterns =  ["@", "/", "^"];
    if(patterns.includes(a)){
       console.log("Bu bir RegExp'dir");
    }else {
        console.log("RegExp değildir");
    }