IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Adam Gajdečka:9.1.2019 13:08

Mám string, kde musí být číslo účtu. Potřebuji to ošetřit.

ASP .NET CORE 2.1

Zkusil jsem:

[RegularExpression("^[0-9]{1,12}$", ErrorMessage = "Číslo účtu může obsahovat pouze čísla a pomlčky")]

Chci docílit: Moc tomu zatím nerozumím, to co mám, tak ověří, zda jsou tam jen čísla. Ovšem já potřebuji taky povolit pomlčky na jakémkoli indexu. Děkuji

 
Odpovědět
9.1.2019 13:08
Avatar
Martin Petrovaj
Tvůrce
Avatar
Martin Petrovaj:9.1.2019 15:33

Na Regexy som síce tiež ľavý, takže tento môj výtvor asi nebude veľmi efektívny, ale malo by to robiť čo chceš:

^([[0-9]+[-]?[0-9]*)+(?<![-])$

Prvá okrúhla zátvorka testuje, či sa v reťazci nachádza podreťazec zložený s čísel a s voliteľnou pomlčkou. Keďže ale táto prvá zátvorka povoľuje aj možnosť daný reťazec pomlčkou ukončiť, výraz v druhej okrúhlej zátvorke by mal kontrolovať, že sa reťazec nekončí pomlčkou.

Bohužiaľ ale Regex nestráži dĺžku reťazca, to si ošetri na danej vlastnosti atribútom MaxLength.

Nahoru Odpovědět
9.1.2019 15:33
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9.1.2019 15:42

[0-9] je rozsah 0 az 9. Jestli tam chces pomlcku, pak neco z tohoto by melo fungovat
[0-9-]
[-0-9]
[0-9\-] escapovani znaku (lomitka) pro regular
[0-9\\-] escape kvuli stringu
[0-9\\\\-] escape kvuli stringu, pokud se preklada ze stringu

Ale sel bych spis do podobne verze jako psal Martin.
^[0-9]+([-][0-9]+)+$
Navic bych se s tou informaci nezabyval, proste uzivateli ty znaky smazu. A pouze ho upozornim, ze jsem mu tam neco odmazal, at potvrdi, ze je to ted spravne.
Coz ale muze uzivatele znejistet, jestli treba nejde o nejaky virus. V pripade penez jsou uzivatele kupodivu pozornejsi nez u emailu :)

 
Nahoru Odpovědět
9.1.2019 15:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.