10. marts 2006 - 08:34Der er
11 kommentarer og 1 løsning
Regular expression
Nu har jeg hevet mig selv i håret, en halv dag for at lave et regular expression til validering af password, og er nået frem til følgende: ValidationExpression="(?!^[^a-zA-Z-09]+$)(?!=.+\d)(?!^[a-zA-Z]+$)^([a-zA-Z0-9\W]{8,10})$"
Jeg vil gerne have at passwordet SKAL indeholde bogstaver, MINDST ét tal og MINDST ét speciel tegn(!, @, $, osv).
Den jeg har her skal indeholde bogstaver samt ét tal ELLER et speciel tegn.
Jeg har været inde på diverse site's, så kun en løsning kan bruges.
Hvis du vil lade dem designer ALLE mulige passwords, får du en lang expression, hvis du vil tage højde for alt.
Den her kan dække de mest syge, men du kan ikke sætte ^ og $ tegnene ind. Tænk på en bruger med dette password: "Teh33kfe#444k". Det vil du ikke kunne dække ind med udtryk, andet du lister ALLE muligheder som der kan være i et password, så er du måske bedre tjent med soreno's mulighed.
(\D+\d+\W+|\D+\W+\d+|\d+\D+\W+|\d+\W+\D+|\W+\D+\d+|\W+\d+\D+) <- Denne kan tage det nævnte password
Hvorfor er det lige at vi ikke har prøvet det mest "simple"? Du laver et array med de ting de skal indeholde. Så loop'er du igennem dem sammen med et regex objekt. Så behøver du ikke lave et regex som kan håndtere alt. Du laver bare nogle små bider som kan håndtere de ting som du vil have.
string[] TestCriteria = {@".*\D+.*",@".*\d+.*",@".*\W+.*"}; bool Result = false;
Regex regTester;
foreach(string S in TestCriteria) { regTester = new Regex(S,RegexOptions.Singleline);
jhansen31> Hvis vores løsning ikke bliver brugt, skal vi heller ikke have points. :-) Held og lykke med det.
Synes godt om
Ny brugerNybegynder
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.