indian araç sayısı için düzenli ifade javascript ve php

3 Cevap php

Hint araç SAYISI için, düzenli bir JavaScript ifade yanı sıra, PHP gerekir.

Burada şartlar listesi:

(x)(y)(z)(m)(a)(b)(c)

1. (x) contains only alphabets of length 2.
2. (y) may be - or single space ' '.
3. (z) contains only numbers of length 2.
4. (m) may be or , or single space ' '.
5. (a) must be one or two alphanumeric followed by an alpha.
6. (b) must be identical to (y).
7. (c) contains only numbers of length 4.

Burada geçerli araç sayılarının bazı örnekler:

  • RJ-14, NL-1234
  • RJ-01, 4M-5874
  • RJ-07, 14M-2345
  • RJ 07,3 M 2345
  • RJ-07, 3M-8888
  • RJ 07 4M 2345
  • RJ 07,4 M 2933

ve (bir nedenle) bazı geçersiz olanlar:

  • RJ-07 3M 1234 ((y her ikisi de) ve (b) aynı olması gerekmektedir.)
  • RJ-07 M3-1234 ((a) zorunluluktur alfabe ile biter).
  • rj-07 3M-123 ((c uzunluğu) 4 olmalıdır.)

3 Cevap

İşte regex bulunuyor ... Bu çoğu / bütün langauges güvenli olmalıdır:

([a-z]{2}-\d{2}[ ,][a-z0-9]{1,2}[a-z]-\d{4})|([a-z]{2} \d{2}[ ,][a-z0-9]{1,2}[a-z] \d{4})

Ben regex neden nedeni ile iki kez tekrarlanan bir "veya" ortada "hem de (y) ve (b) aynı olmalıdır." Sizin kriterlerini karşılamak için

Normal bir ifade ile every sorunu çözmek gerekmez, oldukça kolay kod ile kontrol edebilirsiniz. Tüm ama sayısı 5 kolaydır, bu yüzden kullanabilirsiniz:

^[A-Z]{2}[ \-][0-9]{2}[ ,][A-Z0-9]{2,3}[ \-][0-9]{4}$

sonra (toplam uzunluğu 14 yerine 13 ise ve 9) durumu 5 numaralı karakter 7 ve 8 kontrol edin. Ayrıca 3 ve 7 aynıdır konumlarını kontrol edin.

Bu eski stil kontrol etmek için gerekli kod çok daha okunabilir (ve sürdürülebilir) aynı şeyi yapmak için normal bir ifade daha olması muhtemeldir.


Ikinci örnek {[(1 gösterir ise soruyu tekrar okuyunca, koşullar 5 ve 6'da karışıklık var gibi görünüyor. Koşul 5 o any iki veya üç karakter gibi ses yapar alfa olabilir )]} alfa olmalıdır.

Benzer kelimenin durumu 6 kullanımı ilk örnek karakter olmalıdır gösterir ise condition benzer olduğunu gösterir identical.

Örnekler doğru iseniz, kullanabilirsiniz:

^[A-Z]{2}([ \-])[0-9]{2}[ ,][A-Z0-9]{1,2}[A-Z]\1[0-9]{4}$

(Siz de küçük harf gerekiyorsa ayarlama) ama ben still O iyi olmayan regex kodu daha rahat olduğunu ortaya koydu korumak.

Deneyin:

<?php
$arr = array("RJ-14,NL-1234", "RJ-01,4M-5874", "RJ-07,14M-2345", "RJ 07,3M 2345", "RJ-07,3M-8888", "RJ 07 4M 2345", "RJ 07,4M 2933","RJ-07 3M 1234","RJ-07 M3-1234","rj-07 M3-123");

foreach($arr as $str) {
    if(preg_match('/[a-z]{2}( |-)\d{2}(?: |,)(?:[a-z\d]{1,2}[a-z])\1\d{4}/i',$str))
        print "$str\tYES\n";
    else
        print "$str\tNO\n";
}

?>

Çıktı:

RJ-14,NL-1234   YES
RJ-01,4M-5874   YES
RJ-07,14M-2345  YES
RJ 07,3M 2345   YES
RJ-07,3M-8888   YES
RJ 07 4M 2345   YES
RJ 07,4M 2933   YES
RJ-07 3M 1234   NO
RJ-07 M3-1234   NO
rj-07 M3-123    NO