Avatar billede Slettet bruger
01. oktober 2006 - 13:11 Der er 9 kommentarer

Reg expression

Hej eksperter.
Jeg har dette script som står i bunden her, og der vil jeg tjekke følgende på strengen:
bogstaver "a-z" + "æøå" (kun med småt)
tal "0-9"
" " mellemrum

        function checkChars() {
            $var = eregi("[^a-z0-9æøå ]", $this->username);
            if($var)
                return true;
            else
                return false;
        } // ends the function checkChars
Avatar billede Slettet bruger
01. oktober 2006 - 13:12 #1
Den melder fejl hvis jeg bare skriver "coldgate";
Avatar billede jaw Nybegynder
01. oktober 2006 - 13:13 #2
Prøv:
^[a-z0-9æøå ]+$
Avatar billede Slettet bruger
01. oktober 2006 - 14:53 #3
Du har ret og det virker, et ekstra spørgsmål, hvorfor virker denne ikke? :

        function numeric($var) {
            if(is_numeric($var))
                return true;
            else
                return false;
        }// ends the function numeric
Avatar billede Slettet bruger
01. oktober 2006 - 14:53 #4
Vil godt forhøje point budet hvis det er.
Avatar billede Slettet bruger
01. oktober 2006 - 14:53 #5
Du får lige hele mit script:


<?PHP
    class User {
        var $username;
        var $userID;
        var $sex;
        var $roomid;
        var $mylevel;
       
        function checkChars() {
            $var = eregi("^[a-z0-9æøå ]+$", $this->username);
            //$var = eregi("[^a-z0-9æøå ]", $this->username);
            if($var)
                return true;
            else
                return false;
        } // ends the function checkChars
       
        function length() {
            $length = strlen($this->username);
           
            if(!(($length >= 15) || ($length <= 2)))
                return true;
            else
                return false;
        } // ends the function length
       
        function checkForSpaces() {
            $username = $this->username;
           
            if(!strstr($username, "  "))
                return true;
            else
                return false;
        } // ends the function checkForSpaces

        function numeric($var) {
            if(is_numeric($var))
                return true;
            else
                return false;
        }// ends the function numeric
       
        function doIt() {
            $errors = array("Brugernavnet må kun indeholde bogstaver, tal eller mellemrum. [".$this->username."]", "Brugernavnet må kun være mellem 3 - 14 tegn. [".strlen($this->username)." tegn]", "Brugernavnet må ikke indehold 2 mellemrum i træk. [".$this->username."]", "Brugerid'et må kun indehold tal. [".$this->userID."]", "Du har ikke valgt noget køn.", "Der skete en fejl med rummet.", "Der er opstået en fejl, med brugeren.");
            $sex = array("male", "female");
           
            if(!$this->checkChars()) {
                return $errors[0];
            } elseif (!$this->length()) {
                return $errors[1];
            } elseif (!$this->checkForSpaces()) {
                return $errors[2];
            } elseif ($this->numeric($this->userID)) {
                return $errors[3];
            } elseif ($this->numeric($this->sex)) {
                return $errors[4];
            } elseif($this->numeric($this->roomid)) {
                return $errors[5];
            } elseif ($this->numeric($this->mylevel)) {
                return $errors[6];
            }
           
            return $sex[$this->sex];
        } // ends the function doIT
       
    } // ends the class user
?>
Avatar billede jaw Nybegynder
01. oktober 2006 - 14:54 #6
Virker den ikke? Men du har jo en funktion i en funktion, er det ikke bare tosset? :)
Avatar billede Slettet bruger
01. oktober 2006 - 16:01 #7
Jeg kalder jo funktionen numeric flere gange, derfor sparer jeg lidt synes jeg.
Avatar billede jaw Nybegynder
01. oktober 2006 - 16:06 #8
Kan ikke se den store forskel på is_numeric($var) eller numeric($var) - bortset fra, at det tager en lille smule flere ressourcer og at du sparer is_. Men jeg kan nu heller ikke se, at der burde være noget galt i den...
Avatar billede Slettet bruger
21. december 2006 - 23:43 #9
svar?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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