Geek tričko zdarma Python týden
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde
Pouze tento sleva až 80% na kurzy Python
Avatar
Adam Gajdečka:9. ledna 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. ledna 13:08
Avatar
Martin Petrovaj
Překladatel
Avatar
Martin Petrovaj:9. ledna 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. ledna 15:33
if (this.motto == "") { throw new NotImplementedException(); }
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9. ledna 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  +1 9. ledna 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.