Autor | Zpráva | ||
---|---|---|---|
pardubak99 Profil |
#1 · Zasláno: 17. 1. 2012, 08:54:04
Poradíte někdo s regulárem na kontrolu zadaného času po 1/4 hodinách ve formátu hh.mm? Povolené hodnoty jsou např. i 0 až 24 bez tečky a zbylých nul nebo i s tečkou a popř. i nulami, 15.3 bez koncové nuly, 14.15, 22.45 , ..... proste vše od 0 do 24.00 po 1/4 hodinach.
Dále prosím popř. doformátování zadaného na standart hh:mm a popř. i o "zaokrouhlování" na požadované 1/4 hodiny když se uživatel splete. Děkuji. |
||
Joker Profil |
#2 · Zasláno: 17. 1. 2012, 10:50:11
pardubak99:
Na tohle myslím regulární výraz není ideální. Krom toho, tohle: „15.3 bez koncové nuly“, tj. automaticky měnit číslo 3 na 30, není dobrý nápad. Vidím to úplně živě, jak se potom interval zkrátí na 5 minut (a větu „takhle je to konečné a určitě se to nikdy měnit nebude“ jsem zažil X-krát) a bude se převádět 15.3 na 15.30 a 15.5 na 15.05, pak interval po minutě a vznikne naprostý chaos. Nehledě na tohle: „popř. i o "zaokrouhlování" na požadované 1/4 hodiny když se uživatel splete.“ Jinak řečeno: 15.2→15.00, 15.3→15.30, 15.4→15.00, 15.8→15.15? Nepřijde mi to úplně intuitivní a domyšlené. Když si zkusím představit řešení: 1. Převést na jeden oddělovač (str_replace všechny možné oddělovače na tečku třeba) 2. Rozdělit podle oddělovače (explode) 3. S jednotlivými částmi pracovat jako s čísly. |
||
blaaablaaa Profil |
#3 · Zasláno: 17. 1. 2012, 15:07:52
pardubak99:
A co toto ošetřit už na vstupu v JS a nenechat uživatele zadat nesprávný čas? Na serverové straně pak pracovat jak popisuje Joker. |
||
pardubak99 Profil |
#4 · Zasláno: 17. 1. 2012, 19:32:19
Díky za příspěvky.
- jasně, oddělovače převedu str_replace, to už mám připravené, to je fuk co tam zadají. - co se týče toho zadání času a validace, tam chci trochu uživatelům zjednodušit práci a umožnit zadat např. 15 místo 15:00 nebo 14.3 místo 14:30, ..... Tady si furt myslím že validace regulárem byla optimální. Před oddělovačem a oddělovač je to jasné: ([01]?\d|2[0-4])(\.|,|:)? .... ale ten konec kde může být už jen 0, 00, 15, 3, 30, 45 nevím jak optimálně napsat. - na to "zaokrouhlování" se asi fakt vyfláknu, prostě jim vychodím chybu zadání a basta :-) |
||
Časová prodleva: 12 let
|
0