Şimdi Ara

Regex ile nasıl ardışık sayı kontrolü yapılır?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
14
Cevap
0
Favori
1.059
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar, Ben bir input için kontrol yapmak istiyorum.
    İnputa girilen değer ardışık sayı ve tekrar eden sayılar içermeyecek.(Örn: 4444444, 123456, 654321, 987654321, vs...)
    Bunun kontrolunu nasıl yapabilirim?



  • ^(?!.*?[ '.-]{2})[A-Za-z0-9 '.-]{1,30}$
  • Requizm kullanıcısına yanıt
    Çok teşekkür ederim. Eğer zahmet olmazsa kodu açıklayabilir misiniz?
  • Regex kodu Perl ile denedim fakat 44444 yerine 47 yazınca onu da yakaladı yani tam doğru çalışmıyor.



    https://duckduckgo.com/?t=palemoon&q=Integer+Sequence+Regex bakınca ardışık sayı kontrolü için regex pek olmaz seklinde yorumlar var ki bence de öyle. Ardışık sayı kontrolünü regex 'e sıkıştırmak biraz zor.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • vala regexlikten çıktı ama işine yarar belki

    (0(?=0|1)|1(?=1|2)|2(?=2|3)|3(?=3|4)|4(?=4|5)|5(?=5|6)|6(?=6|7)|7(?=7|8)|8(?=8|9)|9(?=9)|9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0))



    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 16 Aralık 2018; 17:37:7 >
  • quote:

    Orijinalden alıntı: scarlett18

    Çok teşekkür ederim. Eğer zahmet olmazsa kodu açıklayabilir misiniz?
    Benim sadece başlangıç seviyesinde regex bilgim var dostum, internetten buldum bu kodu.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Requizm kullanıcısına yanıt
    Regex ile birbirini tekrar eden karakter kontrolü iyi yapılır fakat ardışık artan / azalan kontrolü ancak bir rutin fonksiyon ile yapılabilir. Forumda 1-2 sene önce bir soru vardı bir dizide birbirini ardışık takip eden en uzun alt dizi çıkarmakla ilgili, o soruyu örneğin rutin kullanarak cok rahat çözmüştük

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Eğer aklınızda ise o çözümü paylaşabilir misiniz?
  • Peki regex yerine ne kullanabilirim?
  • Regex bilgim çok yok ama ([0-9])\\1+$ bu tarz bir şey olmali. Bir grup tanımı yapıp sonra onun buldugu değeri değişken gibi kullanıp ondan birden fazla olmasını ve bunun sanir sonuna kadar olmasını beklemen gerek. Misal "ABC" diye bir değer var 'ABC' diye var ama "abc' valid değil. İşte ilk bulduğunu aynısı gibi diyebildi gün bir işaret var. \\1 diye kalmış aklımda. Bir onu araştır. Bir de ben olsam verbal expression kütüphanesini kullanarak regex yazardım. Regex öğrenilip kullanılan sonra unutulan bir Markup :) PC başına olsam dener gönderirdim. Bu kod size tekrar eden olup olmadığını söyler ama ardışık başka bir mesele. Ben regex ödevi değilse ^[0-9]+$ der rakam olduğundan emin olur sonra split eder number array yapar tek tek bakardım. Ama ödev regex öğretmekse biraz araştır.



    < Bu mesaj bu kişi tarafından değiştirildi mahoni_38 -- 16 Aralık 2018; 21:21:28 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • benim yazdığıma baktın mı sorudan anladığımı yaptım
    https://jsfiddle.net/1gaw6th5/



    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 16 Aralık 2018; 21:30:8 >
  • Sadece ardisik ve ayni olmayacaksa neden bir loop ile gezip bir onceki karakter x ise x-1, x veya x+1 mi diye kontrol edip eger oyleyse false dondurmuyorsun?

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • scarlett18 S kullanıcısına yanıt
    Regex yerine basit bir fonksiyon yazarak kontrolü yapabilirsin (tabi ki)

    Örneğin aşağıdaki kod örnek verdiğin rakamları ardışık mı değil mi kontrol ediyor:

    Regex ile nasıl ardışık sayı kontrolü yapılır?
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.