Avatar billede beef12 Nybegynder
16. marts 2007 - 13:11 Der er 7 kommentarer og
1 løsning

RegEx pattern til tal

Jeg har forsøgt med denne pattern [0-9]*, for at validere at inddata er et tal.

Indtaster man et serie af bogstaver returnerer min match alligevel true... Hvorfor?
Avatar billede dr_chaos Nybegynder
16. marts 2007 - 13:15 #1
prøv med:
private Regex _isNumber = new Regex(@"^\d+$");
Avatar billede erikjacobsen Ekspert
16. marts 2007 - 13:15 #2
Du skal nok bruge:  ^[0-9]+$
Avatar billede pidgeot Nybegynder
16. marts 2007 - 13:17 #3
Stjernen angiver 0 eller flere matches, og det regexp derfor matcher alt (såfremt der ikke er andet i det regexp). Hvis der skal være mindst et tal, skal du bruge +, som Erik er inde på.

Jeg vil dog foreslå dig i stedet at vende den om, og se på om der er et tegn, som ikke er et ciffer: Ved at bruge "[^0-9]" (gåseøjnene er selvfølgelig ikke en del af regexp'et), vil der være et match såfremt der er andet end cifre i inputtet. Hvis den ikke matcher, har du altså enten med en tom streng at gøre, eller også med en streng der kun består af cifre - udfra din beskrivelse er det i virkeligheden det du er ude efter.
Avatar billede beef12 Nybegynder
16. marts 2007 - 13:26 #4
Nå ja - selvfølgelig.

Tak skal i ha'. dr_chaos var marginalt hurtigst - så han får points :-)

Smid et svar læge_kaos.
Avatar billede dr_chaos Nybegynder
16. marts 2007 - 13:37 #5
javel ja :=)
Avatar billede bulgroz Nybegynder
16. marts 2007 - 13:42 #6
Indtaster man...
Så husk at der er et alternativ til den almindelige TextBox som hedder MaskedTextBox
Avatar billede beef12 Nybegynder
16. marts 2007 - 13:43 #7
Tak bulgroz, det vil jeg lige undersøge.
Avatar billede erikjacobsen Ekspert
16. marts 2007 - 14:00 #8
Generelt vil jeg ikke anbefale at lave et negativ regulært udtryk som "[^0-9]" - det vil virke i dette tilfælde (og selvfølgelig have sin berettigelse når der netop er nogle tegn man ikke vil have).

Tal er sjældent bare vilkårlige følger af cifre, og man er nødt til at bruge den positive udgave, hvis man bliver nødt til at sætte blot en simpel yderligere begrænsning på. Fx. max 4 tegn:  "^[0-9]{,4}$" - det kan ikke klares med et negativt regulært udtryk.

Derfor hellere være positiv fra starten ;)
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