Avatar billede wmann Nybegynder
14. oktober 2008 - 16:37 Der er 3 kommentarer

Tekstvalidering til målestok

Jeg har i en form at en bruger skal indtaste en målestoksforhold der skal bruges.
Jeg har rodet med regulære udtryk for at finde en måde men synes ikke det kan blive kontant og godt nok.
Denne model skal benyttes:
"1" efterfuldt af ingenting eller whitespace (" "), så kolon :, så ingenting eller whitespace og så højden.

Dette er tilladt brugeren:
1: 5000
1 : 5000
1:5000
1 :5000
hvilket er fint nok, men så snart der kommet kolon i bliver det mere besværligt.
Man kan validere slutningen med:
\d{1,3}[.]\d{3}$  => Dette siger fra slutningen af strengen skal der være 3 tal - så et punktum og derefter 1-3 tal igen.
Det er fint MEN hvad så hvis det bliver større endnu?
Den skal jo dynamisk kunne godtage 500.000 men også 5.000.000 uden at godtage 5.50.000.

Der er en minimums og maksimums-skala med her så tænkte man kunne se hvad maximums-længden var. Fx ved 5000000 ville .length være 7.
Man kan så dividere med 3 for at finde antal punktumer der skal indsættes for den kan blive max.
Så kan man indsætte fælgende for at imødekomme de ekstra punktumer:
(\d{1,3}[.])?  => som siger der kan komme 1-3 tal efterfuldt af et punktum men kun måske.

Dette giver så problemet når de kommer efter hinanden ved at dette pludseligt bliver acceptabelt for følgende udtryk:
Udtryk:
1\D{0,1}[:]\D{0,1}(\d{1,3}[.])?(\d{1,3}[.])?\d{1,3}[.]\d{3}$
Tal: 1 : 56.1.50.000
Resultat: Dette godkendes da der ikke er regel om at hvis punktum optræder SKAL tallene før være 3.
Avatar billede ulrikm Nybegynder
14. oktober 2008 - 20:38 #1
Måske kommer denne tæt på:

string medPunktum = @"(\d{1,3}([.]\d\d\d)+)";
string udenPunktum = @"\d+";
string pattern = @"^\d\s*[:]\s*(" + udenPunktum + "|" + medPunktum + ")$";

- den accepterer følgende:
1:5.000
1:  5.000
1 :5.000
1:5.000.000
1:52.000.000.000.000
1:25.000.000

og afviser disse:
1:.000.000
1:25.00.000
1:00.
Avatar billede wmann Nybegynder
04. november 2008 - 15:49 #2
ulrikm
giv svar
Avatar billede ulrikm Nybegynder
04. november 2008 - 19:50 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester