23. oktober 2005 - 18:32Der er
16 kommentarer og 1 løsning
Input-validering via Reg.Exp
Hej, prøver igen :-)
Jeg vil reducere mine valideringssætninger, så meget som muligt, og gerne via Reg.Exp. (Til brug i forbindelse med ASP).
Hvordan validerer man inputs med emailadresse og tekst, via Reg.Exp?
Email (Input): Felterne må ikke være tomme, skal indeholde 1 stk. '@', minimum 1 stk '.', minimum 2 bogstaver efter punktummet, og må ikke overskride flere end 60 tegn i alt (Og minimum 6 tegn i alt).
Tekst1 (Input): Felterne må ikke være tomme, skal minimum indeholde 5 tegn i alt og maks 50 bogstaver i alt (Må ikke indeholde tal kun a-å og A-Å).
Tekst2 (Input): Felterne må ikke være tomme, skal minimum indeholde 5 tegn i alt og maks 50 tegn i alt (både bogstaver a-å og A-Å, alle tegn og tal 0-9)
Tekst3 (Textarea): Felterne må ikke være tomme, skal minimum indeholde 10 tegn i alt og maks 5000 tegn i alt (både bogstaver a-å og A-Å, alle tegn og tal 0-9)
Ingen af felterne må indeholde HTML-koder (Hvis det kan lade sig gøre).
Håber at der er en Reg.Exp-haj, der kan hjælpe :-)
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
"(jeg går ud fra, at du er med på instantieringen af regex-objekterne !-)"
Nej, hvad er instantiering (Hvordan man benytter dem?)? Jeg kender absolut intet til Reg.Exp., andet end at jeg ved, at det er meget anvendeligt til at præcisere reglerne for en given streng. Men præcis hvordan man benytter det, ved jeg kun lidt om.
Med 'tegn' mente jeg alle tegn (De mest benyttede i dansk sprog al fald)
^$ betyder henholdsvis starten og slutningen af tekst-strengen, så vi de fleste steder tester hele strengen ... . betyder et hvilkensomhelst tegn, også f.eks. tabulator og § * betyder 0 eller flere af den foran (kan også skrives {0,} ? betyder: Vær ikke grådig, som en regexp normalt er (at den tager så meget som muligt med !-)
-- så .*? betyder 0 eller flere tegn af en hvilkensomhelst slags, men kun til der første gang kommer tegnet lige efter ...
\w betyder som sagt ordtegn (og jeg er faktisk ikke sikker på, at der skal dobbelt-escapes i VBscript !-)
[] betyder en blok indeholdende tegn, som må forekomme (eller ikke forekomme) a-z betyder en range, altså a, b, c ... z {2,6} betyder mindst 2 og højest 6 tegn, i {} kan det første eller sidste tal udelades, så enden bliver åben
+ betyder en eller flere ({1,}
Så mail-tingen oversættes til: Der skal fra starten af teksten være 0 eller flere tegn foran @-tegnet, derefter skal der være et ordtegn efterfulgt af et eller flere ord-tegn, '-' eller '.', efter det et punktum og så 2-6 bogstaver i rangen a-z til slutningen !-)
\s betyder whitespace, og så opdagede jeg lige en fejl, som jeg så lige kan reparere, for [] kan også betyde 'må ikke forekomme' sådan: [^\s] (test selv evt. dobbelt-escaping -- altså \\s !-)
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.