Wpis z mikrobloga

@girlsaddi:
Po pierwsze musisz zrobić wyrażenie regularne aby sprawdzić czy format jest prawidłowy, jak format jest prawidłowy musisz sprawdzić czy dany dzień i miesiąc jest prawidłowy (np. czy ktoś nie wpisał 31 lutego), czy godzina nie jest zbyt duża etc. Czyli najpierw proste wyrażenie sprawdzające czy format jest ok, a następnie rozbijasz sobie wartość na poszczególne wartości np.

//najpierw test czy format jest ok dopiero to co niżej
const [date, time]
@ddiazepam: Skoro format ma być dd:mm:yyyy hh:mm - ss to liczba spacji jest stała i zaznaczyłem, że regex najpierw do testu, no i technicznie można po prostu regexpem wszystko wyciągnąć, ale mi się nie chcę go pisać.
@girlsaddi: oczywiście to jest bez jakiejś sensownej walidacji bo przejdzie 33:33:33 33:33 - fdd to można oczywiście ogarnąć tylko regex będzie bardziej skomplikowany
via Wykop Mobilny (Android)
  • 0
@lobo: do wstępnej walidacji i wyciągnięcia danych niepotrzeba w regexpie zapisywać, żeby miesiąc nie był większy niż 12 i dzień 31.
@mk321: nie trzeba, ale można i wtedy nie musisz później walidować np. miesiąca albo gdy jest oczywisty błąd w dacie. To są po prostu rzeczy które ułatwiają nieco.
via Wykop Mobilny (Android)
  • 0
@lobo: i tak trzeba potem wyliczyć czy dni w danym miesiącu są poprawne, więc bez sensu wcześniej sprawdzać to regexpem.

Dodanie tego do regexpa nic nie daje, a tylko utrudnia czytelność regexpa i powoduje większe ryzyko błędu w nim.
@mk321: Oczywiście, że daje ten regex który dałem walidacje na dni można by wywalić, ale np. miesiące/godziny/minuty już nie trzeba walidaować.