black-light Skrevet 21. april 2011 Del Skrevet 21. april 2011 (endret) vi kan si at jeg jobber med et registeringsscript hvor jeg vil at brukernavnet skal kunne inneholde [a-z0-9A-Z_-] men må starte med en bokstav jeg har alt brukt linjen $username = '_-_Bruker#na()vn-02'; // bare et dårlig eksempel på hvordan jeg ikke vil at det skal se ut når jeg er ferdig med det $username = preg_replace]('/[^a-z0-9A-Z_-]/','',$username); // nå blir $username = '_-_Brukernavn-02'; // nå ... hvordan får jeg dette til å bli // Brukernavn-02 så nå trenger jeg en liten linje eller noe som gjør at den vil skjekke om det første tegnet er en bokstav (stor eller liten) og hvis det ikke er en bokstav så skal den bli fjernet Endret 21. april 2011 av black-light Lenke til kommentar
Thomas. Skrevet 21. april 2011 Del Skrevet 21. april 2011 (endret) Du kan bruke ctype_alpha og substr for å sjekke om første tegn er en bokstav. Så er det greit at den som registrerer får melding om at man må ha en bokstav først, slik at den ikke fjerner automatisk <?php $string = array( 'Brukernavn', '_Brukernavn', ' Brukernavn', '*__;Brukernavn', ); echo 'Sjekk om første tegn er en bokstav:<br><br>'; foreach($string as $str) { echo '\'' . $str . '\': ' . (ctype_alpha(substr($str, 0, 1)) ? 'OK<br>' : 'FAIL<br>'); } ?> Eller du kan bruke preg_match, F-eks: /^[abcdefghijklmnopqrstuvwxyz ]{3,20}$/i Kan du bruke da. Endret 21. april 2011 av Thomas. Lenke til kommentar
black-light Skrevet 21. april 2011 Forfatter Del Skrevet 21. april 2011 Du kan bruke ctype_alpha og substr for å sjekke om første tegn er en bokstav. Så er det greit at den som registrerer får melding om at man må ha en bokstav først, slik at den ikke fjerner automatisk <?php $string = array( 'Brukernavn', '_Brukernavn', ' Brukernavn', '*__;Brukernavn', ); echo 'Sjekk om første tegn er en bokstav:<br><br>'; foreach($string as $str) { echo '\'' . $str . '\': ' . (ctype_alpha(substr($str, 0, 1)) ? 'OK<br>' : 'FAIL<br>'); } ?> Eller du kan bruke preg_match, F-eks: /^[abcdefghijklmnopqrstuvwxyz ]{3,20}$/i Kan du bruke da. Må vist lese meg litt opp på dette ... men ja alltid lurt å gi beskjed om hva brukernavnet kommer til å bli før du lager det ganske nylig laget jeg en bruker på en side jeg skrev black-light-studio som brukernavn den sa at det var ledig og slikt da jeg hadde trykt sign up ble jeg hetende black-light-stu Lenke til kommentar
black-light Skrevet 21. april 2011 Forfatter Del Skrevet 21. april 2011 Så jeg leste litt på det og fant en løsning som ser ut til å funke for meg noen mulige problemer i denne? $count = 1; $first_character = substr($username, 0, 1); while ( ! ctype_alpha($first_character)){ $username = substr($username, 1); $first_character = substr($username, 0, 1); $count += 1; if ($count >= 10){ break($error = "For mye tull"); } } så vil jeg selvfølgelig sette det opp slik at man får en meldig og bekreftelse av noe slag slik at man kan være fornøyd med det brukernavnet man velger Lenke til kommentar
FraXinuS Skrevet 22. april 2011 Del Skrevet 22. april 2011 Det er nå litt enklere å bare bruke en regexp da. <?php $username = '_-_Bruker#na()vn-02'; $username = preg_replace('/^[^a-z]+|[^a-z0-9-_]+/i', '', $username); // $username == 'Brukernavn-02' //En alternativ måte som muligens er litt klarere er: //$username = preg_replace(array('/^[^a-z]+/i', '/[^a-z0-9-_]+/i') , '', $username); ?> Lenke til kommentar
black-light Skrevet 22. april 2011 Forfatter Del Skrevet 22. april 2011 Det er nå litt enklere å bare bruke en regexp da. <?php $username = '_-_Bruker#na()vn-02'; $username = preg_replace('/^[^a-z]+|[^a-z0-9-_]+/i', '', $username); // $username == 'Brukernavn-02' //En alternativ måte som muligens er litt klarere er: //$username = preg_replace(array('/^[^a-z]+/i', '/[^a-z0-9-_]+/i') , '', $username); ?> ja det er det sikkert og vist er bare jeg som ikke har noe serlig erfaring med regexp enda. (lære det bedre står på gjøremåls listen) takker så meget Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå