2017-09-11 1 views
1

I 2 unterschiedliche Datumsformate zulassen möchten:REGEX für 2 Datumsformate

1/1/2017 und 1-JAN-2017

ich diese Regex verwende aber seine nicht funktioniert:

re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})|[0-9]{1,2}\-[a-zA-Z]{3}\-[0-9]{4}/; 

Antwort

5

die Alternativen Gruppe und das Ende der Zeichenfolge Anker hinzu:

re = /^(?:\d{1,2}\/\d{1,2}\/\d{4}|\d{1,2}-[a-zA-Z]{3}-\d{4})$/; 
     ^^^      ^      ^^ 

Siehe regex demo.

Ohne das Gruppierungskonstrukt wird ^ nur auf (\d{1,2}) angewendet, und die andere Alternative wird an einer beliebigen Position in der Zeichenfolge gesucht.

Ohne den Anker $ kann das Muster übereinstimmen, auch wenn das gefundene Muster nicht am Ende der Zeichenfolge steht (und Sie erhalten teilweise Übereinstimmungen).