Was ist die Regex für das Datumsformat JJJJ-MM-TT?
Ich möchte die E-Mail von edittext validieren und prüfen, ob sie mit der Regex übereinstimmt.
Romaine Herrera
Was ist die Regex für das Datumsformat JJJJ-MM-TT?
Ich möchte die E-Mail von edittext validieren und prüfen, ob sie mit der Regex übereinstimmt.
Vinod
Das wird passen yyyy-mm-dd
und auch yyyy-m-d
:
^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$
Wenn Sie nach einer genauen Übereinstimmung für suchen yyyy-mm-dd
dann probiere das aus
^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$
oder verwenden Sie dieses, wenn Sie ein Datum in einer Zeichenfolge wie finden müssen The date is 2017-11-30
\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])*
Wie hast du die Grafik erstellt?
– Allan Xu
4. Mai 2016 um 21:35 Uhr
@AllanXu Es ist von der Seite namens debuggex
– Vinod
11. Mai 2016 um 6:26 Uhr
Unvollständig! Der reguläre Ausdruck passt auch auf 2016-02-31, obwohl er es nicht sollte 🙁
– John Strood
6. Juni 2016 um 10:05 Uhr
@Djack Wovon redest du? Wenn Sie tatsächliche Daten erzwingen möchten, ist eine Regex nicht der richtige Weg. Analysieren Sie das Datum und stellen Sie sicher, dass es in der von Ihnen verwendeten Sprache tatsächlich gültig ist. Dies stellt nur sicher, dass die Zahlen durch Bindestriche getrennt sind und einen Tag haben, der machbar ist (weniger als 32).
– Matt
20. Juni 2016 um 18:46 Uhr
@AlanH Sie können verwenden /^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/
. Wenn auf diese Weise die führende Null fehlt, gibt der Regexp false zurück.
– iaforek
2. Oktober 2017 um 9:10 Uhr
wumpz
Eine einfache wäre
\d{4}-\d{2}-\d{2}
Dies beschränkt jedoch nicht den Monat auf 1-12 und die Tage von 1 bis 31.
Es gibt komplexere Prüfungen wie in den anderen Antworten, übrigens ziemlich clevere. Trotzdem müssen Sie nach einem gültigen Datum suchen, da nicht geprüft wird, ob ein Monat 28, 30 oder 31 Tage hat.
Wow. Ein erster Downvote nach fast 4 Jahren. Ist das nicht ein weiteres Abzeichen wert? 😉
– wumpz
7. Februar 2018 um 7:35 Uhr
Ja, es sollte immer noch heruntergestimmt werden. Diese Antwort ist einfach falsch, da es sich nicht um eine Regex für die Datumsvalidierung handelt.
– Sebastian
3. Januar 2019 um 20:42 Uhr
Warum einfach falsch? Die Regex und die angegebenen Einschränkungen sind korrekt. Was vermisse ich?
– wumpz
5. Januar 2019 um 14:54 Uhr
Es ist auch irreführend, diesen Kommentar nur zu dieser Antwort hinzuzufügen. Die anderen Antworten sind in diesem Sinne ebenfalls falsch, da sie ebenfalls unvollständig sind, um sie zu validieren. Aber wenn Sie es vorziehen, würde ich es eine Bemerkung oder einen großen Kommentar nennen.
– wumpz
6. Januar 2019 um 19:31 Uhr
Upvote, um das Downvote zu kompensieren, weil es die einzige Antwort ist, die ihre Grenzen tatsächlich anerkennt. Die höher bewerteten Antworten machen beispielsweise den 31. Februar nicht ungültig. Erfassen Sie die Textfelder mit Regex und validieren Sie sie mit anderen Plausibilitätsprüfungen.
– Daniel Widdis
14. Mai 2020 um 23:39 Uhr
Hamid Schatu
Sie können diese Regex verwenden, um die zu erhalten JJJJ-MM-TT Format:
((?:19|20)\\d\\d)-(0?[1-9]|1[012])-([12][0-9]|3[01]|0?[1-9])
Sie finden ein Beispiel für die Datumsvalidierung: So validieren Sie das Datum mit einem regulären Ausdruck.
Er wollte JJJJ-MM-TT.
– wumpz
27. Februar 2014 um 7:28 Uhr
Ich habe meine Antwort aktualisiert.
– Hamid Shatu
27. Februar 2014 um 7:30 Uhr
zainoz.zaini
Sie können diesen Ausdruck testen:
^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[\-\/\s]?(([0-2][0-9])|(30)))|(02[\-\/\s]?[0-2][0-9]))$
Beschreibung:
validiert ein JJJJ-MM-TT, JJJJ MM TT oder JJJJ/MM/TT Datum
stellt sicher, dass der Tag innerhalb des gültigen Bereichs für den Monat liegt – validiert NICHT den 29. Februar in einem Schaltjahr, nur dass der Februar 29 Tage haben kann
Übereinstimmungen (getestet): 0001-12-31 | 9999 09 30 | 03.03.2002
Schauen Sie auch rechts im Abschnitt “Verwandte” nach, es gibt viele ähnliche Fälle von Anfragen nach RegEx-Strings zur Datumsvalidierung.
– CJBS
27. Februar 2014 um 7:25 Uhr
Überprüfen Sie diese Antwort, es kann helfen, stackoverflow.com/a/2149698/2675669
– Nambi
27. Februar 2014 um 7:34 Uhr