Avatar billede orca Nybegynder
25. juli 2002 - 03:15 Der er 13 kommentarer og
2 løsninger

RegExp validering

Hej alle. Jeg prøver at lave en simpel RegExp validering af et formfelt. Det skal tjekke for at indholdet kun indeholder nogle foruddefinerede bogstaver, samt at længden er mere end 5 tegn. Hvorledes gør det? Jeg har desværre ikke så meget styr på det endnu.

Jeg kan godt lave valideringen, det er mere RegExp strengen jeg har brug for.

Mvh Mark
Avatar billede euroman28 Nybegynder
25. juli 2002 - 07:42 #1
Siden det er asp.net du arbejder med, hvad så med at bruge en RegularExpressionValidator control.

The RegularExpressionValidator control confirms that the entry matches a pattern defined by a regular expression. This type of validation allows you to check for predictable sequences of characters, such as those in social security numbers, e-mail addresses, telephone numbers, postal codes, and so on.
Avatar billede wisen Nybegynder
25. juli 2002 - 08:32 #2
Det er ikke testet, men det skal være noget i stil med :

/[abcdef]{5,}

Det skulle gerne virke således at kun bogstaverne a-f er lovlige og at der skal være 5 eller mere af dem...
Avatar billede orca Nybegynder
25. juli 2002 - 09:22 #3
euroman28 -> Som sagt kan jeg godt selv lave valideringskontrollen, det er regexp strengen jeg havde brug for.

wisen -> Jeg havde selv fundet frem til noget som du skriver der, jeg kendte bare ikke kommaet efter tallet, tak :). Den validerer dog ok hvis feltet er tomt, men ikke hvis det indeholder 1-4 tegn, hvordan undgår jeg det? (Helst uden at skulle lave en ReqField validator).

Mvh Mark
Avatar billede wisen Nybegynder
25. juli 2002 - 09:33 #4
Øhh, jeg er ikke lige med "Den validerer dog ok hvis feltet er tomt, men ikke hvis det indeholder 1-4 tegn, hvordan undgår jeg det? (Helst uden at skulle lave en ReqField validator)." Kan du ikke uddybe lidt ?
Avatar billede orca Nybegynder
25. juli 2002 - 09:36 #5
Yep, hvis jeg intet skriver i feltet, får jeg ikke fejlbeskeden frem (ErrorMessage). Hvis jeg derimod skriver et til fire tegn i feltet kommer fejlen frem, men ikke hvis jeg skriver 5 eller derover (som den skal).

Mvh Mark
Avatar billede odegaard Nybegynder
25. juli 2002 - 10:04 #6
Siden dette ikke er et decideret ASP.NET spørgsmål. har du så overvejet gruppen "Programmering -> Reg. Exp." ?
Avatar billede orca Nybegynder
25. juli 2002 - 10:12 #7
odegaard -> Yep, men jeg vidste ikke om der eventuelt var nogle specielle egenskaber for .NET. Indtil videre ser det ikke ud som om den opfører sig normalt (ved at den validerer ingeting som over 5 tegn).

Mvh Mark
Avatar billede odegaard Nybegynder
25. juli 2002 - 10:31 #8
Jeg har nu aldrig haft problemer med at benytte standard Reg.Exp. syntax, men jeg skal da ikke kunne udelukke at der er special-tilfælde.
Avatar billede wisen Nybegynder
25. juli 2002 - 10:33 #9
orca >> Kan du ikke poste lidt kode, så jeg kan se hvad du gør....
Avatar billede orca Nybegynder
25. juli 2002 - 10:43 #10
Her er hvad jeg bruger:

                <asp:RegularExpressionValidator id="regexpUsername" runat="server"
                    ControlToValidate="fUsername"
                    ValidationExpression="^[a-zA-Z0-9]{3,}$"
                    ErrorMessage="Du skal skrive et brugernavn på mindst 3 bogstaver, og det må kun indeholde a-z og 0-9.<br>"
                    Display="Dynamic" />
Avatar billede wisen Nybegynder
25. juli 2002 - 10:58 #11
Hmm, jeg har ikke prøvet at arbejde med en 'RegularExpressionValidator', men umiddelbart ser det da rigtigt nok ud... Har du prøvet med en at lave en "RegEx" og prøve at validere "selv", for at være sikker på at dit udtryk er rigtigt ?
Avatar billede orca Nybegynder
25. juli 2002 - 11:26 #12
Næh, jeg har så til gengæld ikke arbejdet med RegEx i .NET, hvordan gør jeg det? :)

PS, jeg hæver lige point lidt
Avatar billede odegaard Nybegynder
25. juli 2002 - 11:28 #13
Jeg bruger selv den her til at teste at jeg er rigtigt på vej:
http://www.3leafsolutions.com/default/NetRegExpRepository.aspx

Kig evt. også på eksemplerne her.
Avatar billede wisen Nybegynder
25. juli 2002 - 11:34 #14
.. noget i stil med :

using System.Text.RegularExpressions;

...

RegEx exp = new RegEx("^[a-zA-Z0-9]{3,}$", RegExOptions.IgnoreCase);
Match m = exp.Match("abc");
if( m.success )
  // OK
else
  // Ikke OK
Avatar billede orca Nybegynder
27. juli 2002 - 10:37 #15
Jeg må hellere få lukket. Jeg fik det ikke løst, i og med den stadig validerer ingenting som validt. Derfor har jeg lavet en RequiredFieldValidator samt RegExp validatoren. I får dog point alligevel for en god indsats :)
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