Geek tričko zdarma Geek tričko zdarma
Hledáme grafika na pohodovou brigádu v Blenderu nebo programátora na hry v PyGame. Máš zájem? Napiš nám na redakce [zavináč] itnetwork.cz!
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde

Diskuze: RegularExpression - pomlčka

Aktivity (4)
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(); }
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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.