2017-12-07 6 views
-1

Hallo, ich bin neu zu regex und ich versuche, diese Maske zu entsprechen: xxxx xxxx xxxx xxxx so weit ich diesenregex passend für Maske Versuch bekam Problem mit min-max Länge

^(\d{4}) (\d{4}) (\d{4}) (\d{4})$ 

getan haben aber wie man die Min-Max-Länge bei der Validierung kontrolliert? Ich muss es möglich machen, 4,8,12 oder 16 Ziffern einzureichen, und ich kann es nicht herausfinden. Danke für Ihre Hilfe.

+0

Sie können geschachtelte optionale Gruppen verwenden oder versuchen, den wiederholten Teil zu gruppieren und einen begrenzenden Quantifizierer damit zu verwenden. –

+0

@Davit ist die folgende Antwort, wonach Sie suchen? – Allan

Antwort

0

Sie können für folgende Lösung gehen:

^\d{4}(\h+\d{4}){0,3}$ 

Erläuterungen:

  • \d{4} genau 4 Ziffern
  • \h eine horizontale Leerzeichen
  • (\h+\d{4}) eine oder mehrere horizontale Leerzeichen, char
  • {0,3} 0 bis 3 Wiederholungen des vorherigen Zeichen/Block von char
  • ^ und $ sind jeweils von Linie und Ende der Zeile beginnen

Viel Glück und lassen Sie mich wissen, wenn etwas nicht klar ist.

+0

wow danke, ich habe es auf https://regex101.com/ getestet und es passt perfekt, aber Projekt, für das ich arbeite, verwendet https://nurulc.github.io/ für die Maskierung und wenn ich versuche zu verwenden Ihre Regex schlägt fehl. Danke trotzdem! –

+0

ersetzen Sie die '\ h' durch ein Leerzeichen – Allan

+0

ich habe \ h mit \ s ersetzt und es funktioniert perfekt danke –