Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 11. 12. 2013, 13:37:21
Zkoušel jsem vytvořit testování na rodné číslo, ale nějak mi nefunguje kontrola pomocí regulárního výrazu:
var patt = /[0-9]{2}[01235678][0-9][0-3][0-9]\/?[0-9]{3,4}/g; Když za rodné číslo píšu další znaky tak to pořád vyhodnocuje jako ok.. |
||
Tori Profil |
V PHP by okolo musely být metaznaky
\b (hranice slova), nevím jestli se dají použít i v JS. Nebo jestli testujete políčko formuláře, tak stačí nejdřív odmazat bílé znaky okolo a k reguláru přidat kotvy pro začátek a konec řetězce.
|
||
quatzael Profil |
#3 · Zasláno: 11. 12. 2013, 13:58:40
Tori:
Takže takhle: var patt = /^[0-9]{2}[01235678][0-9][0-3][0-9]\/?[0-9]{3,4}$/g; ??
Já s regulárními výrazy opravdu zacházet neumím, takže vůbec nevím co a jak.. |
||
anonymní Profil * |
#4 · Zasláno: 11. 12. 2013, 14:19:30
quatzael:
ono je to složitější: - na 3. pozici rodné čísla mohou být pouze znaky „0, 1, 5, 6“, zbylé tebou uvedené nikoliv. - na 4. pozici mohou být znaky: - - 1 - 9 (pokud je na 3. pozici „0“ nebo „5“) - - 0 - 2 (pokud je na 3. pozici „1“ nebo „6“) - na 6. pozici bude opět omezený výběr, a to v závislosti na 5. pozici (pokud 5. bude číslice „3“, na 6. pozici moc možností nezbude. V únoru je na 5. pozici chybně i číslice „3“ (tedy nutno porovnávat i se zadaným měsícem na 3. a 4. pozici RČ. A konečně, desetičíselné rodné číslo (neplatí pro RČ s trojčíslím na konci), musí vyjít číslo dělitelné 11 beze zbytku. - RČ „781105/0335“ může být teoreticky platné (muž, datum narození 5. listopadu 1978 v Praze), protože 7811050335 % 11 == 0
- RČ „781105/0336“ nemůže být platné ani teoreticky (muž, datum narození 5. listopadu 1978 v Praze), protože 7811050336 % 11 != 0
|
||
quatzael Profil |
#5 · Zasláno: 11. 12. 2013, 14:51:40
anonymní:
Dík za reakci, ale mě šlo teď čistě o ten regulární výraz jako takovej. A vypadá, že teď to jede tak jak má.. (možná - blbě se testují všechny varianty).. Ten regulární výraz mám jen jako výchozí podmínku k dalšímu testování. Tzn. od 1954 další ročníky koncové číslo 4-místné a kontrola dělitelnosti 11. A první část testuju jestli takové datum vůbec existovalo. Jinak na té třetí pozici může být i 2/3 u mužů a 7/8 u žen (nově se to přidalo pro případ nedostatku čísel).. |
||
anonymní Profil * |
#6 · Zasláno: 11. 12. 2013, 15:05:44
quatzael:
„Jinak na té třetí pozici může být i 2/3 u mužů a 7/8“ to se mi nezdá. V době boomu se to zvládlo bez nich a nyní, kdy porodnost rok co rok klesá, už to nejde? Jinak na samotném RV chybu nevidím, měl by být v pořádku. |
||
Jan Tvrdík Profil |
#7 · Zasláno: 11. 12. 2013, 15:11:18
Doporučuji si přečíst článek o rodném čísle na Wikipedii, mají tam docela pěkně popsané různé výjimky.
|
||
Medvídek Profil |
#8 · Zasláno: 11. 12. 2013, 15:21:03
A aby to bylo kompletní, tak i článek od Davida Grudla:
http://phpfashion.com/jak-overit-platne-ic-a-rodne-cislo |
||
Časová prodleva: 10 let
|
0