2016-05-19 6 views
-1

Ich muss die Kontrolle in Javascript validieren.Javascript RegEx Validator

Die Nummer muss maximal 12 Ziffern sein, wobei die ersten 7 Buchstaben 9900000 sind, dann 0 oder 1, und die restlichen 4 Ziffern sind frei.

I definiert Validator bereits als:

var validator = new RegExp("/^9900000[0-1]{3}\[0-9]{4}/"); 

aber es funktioniert nicht, was falsch ist?

EDIT:

    var check = 990000014212; 

        var validator = new RegExp("/^9900000[0-1][0-9]{4}$/"); 
        console.log(validator.test(check)); 
        if (validator.test(check)) 
        { 
         console.log("Valid"); 
        } 
        else 
        { 
         console.log(check); 
         console.log("Invalid"); 
        } 

Wie es möglich ist, dass das Ergebnis ist immer "ungültig" und falsch?

+0

Ihre Regex passt nur Dinge mit drei 0 oder 1 Zeichen nach dem ersten Teil, nicht nur eins. – Chris

+0

Das Problem war in/am Anfang, als ich Validator angemeldet habe, erkannte ich sein "/ \/^ 9900000 [0-1] [0-9] {4} $" irgendwie ... – Zefurion

Antwort

1

Sie haben eine {3} in Ihrer RegExp-Zeichenfolge, die Ihrer Beschreibung widerspricht.

+0

sein "/^9900000 [0 -1] {3} \ [0-9] {4}/"Tut mir leid, ich weiß nicht, warum das \ in der Mitte auf der Kopie gelöscht wurde, ist es immer noch falsch? – Zefurion

+1

Ihr '\' entspricht einem Literalraum und dann einem Literalraum. Unter der Annahme, dass Ihre ursprüngliche Beschreibung präzise und korrekt ist, sollte der Validator lauten: var validator = new RegExp ("/^9900000 [0-1] [0-9] {4} /"); – pbeentje

+0

Nun, ich habe die '990000014212' Nummer eingegeben und es gibt "Ungültig" zurück. Sollte es den Text nicht passieren? – Zefurion