2017-06-28 3 views
1

Ich versuche, GST Validierung in PHP zu implementieren.GST Nummer Validierung in PHP

if(!preg_match("/^([0-5]){2}([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}([a-zA-Z0-9]){1}([a-zA-Z]){1}([0-9]){1}?$/", $testcase)) { 
     $flag = "Invalid GST number "; 
     return $flag; 
    } 

ersten 2 Ziffern sind state-Code, der zwischen 01 bis 35 sein, aber mein Code akzeptiert 01-55, die falsch ist. Eine Möglichkeit, es nur bis 35 zu validieren.

Antwort

1

Ich glaube, Sie sollten die Regex beginnen mit:

/^([0-2][0-9])|(3[0-5])

edit: ein Fehler: dies ermöglicht auch 00

+0

Dank Kumpel, hat Ihre Antwort mir eine Idee. Dies wird auch Ihren Fehler von 00 preg_match ("/^([0-3]) {1} ([1-5]) {1} ([a-zA-Z]) {5} ([0 -9]) {4} ([a-zA-Z]) {1} ([a-zA-Z0-9]) {1} ([a-zA-Z]) {1} ([0-9 ]) {1}? $/", $ Testcase) es funktioniert für mich –

+0

müssen Sie mit dem (en) herumspielen, damit es funktioniert –

+1

funktioniert Ihre Lösung auch beim Start 10 oder 20? oder 26? –

4

Sie müssen Sie Bereich in den tatsächlichen Stellen-Zahl brechen.

wird die folgende

arbeiten
if(!preg_match("/^(0[1-9]|[1-2][0-9]|3[0-5])([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}([a-zA-Z0-9]){1}([a-zA-Z]){1}([0-9]){1}?$/", $testcase)) { 
    $flag = "Invalid GST number "; 
    return $flag; 
} 

Die Zahl Regex wie folgt funktioniert, wir die ersten 2 Ziffern Validierung in 3 scenarios.We der oder Betreiber verwenden aufzuschlüsseln | in die Szenarien aufgeteilt werden. 01-09 mit einer

  • Die 2 Ziffern beginnen:

    (0[1-9]|[1-2][0-9]|3[0-5]) 
    
    • Die 2 Stellen mit Null
      • Die zweite Ziffer
      • Ermöglicht zwischen 1 und 9
      • sein kann erst beginnen, 1 oder 2
        • Lassen Sie die zweite Stufe 0-9
        • Ermöglicht 10-29
      • Die Ziffern 2 mit einem 3
        • Ermöglicht die zweite Ziffer 0-5
        • Ermöglicht 30-35

      starten Hoffe, das hilft

  • +0

    für mich arbeiten .. :) –

    +0

    froh, dass es für Sie arbeitet! Nach dem Test, ob alles für Sie arbeitet, bitte als Antwort markieren, nochmals vielen Dank! – JParkinson1991