Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Proste wyrażenie regularne
230005
post 5.03.2009, 16:55:37
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 36
Dołączył: 2.04.2008

Ostrzeżenie: (0%)
-----


Mam taki kod:

  1. <?php
  2. public function isValid()
  3.    {
  4.        preg_match("/([w]){3,}+s([w]){2,}/i", $this -> recipient_name, $patt);
  5.        
  6.        //for($i = 0; $i < count($patt); $i++)
  7.           //echo $patt[$i][$i];
  8.  
  9.            
  10.        if($patt)
  11.            $blFlag = true;
  12.        else
  13.            $blFlag = false;
  14.            
  15.        preg_match("/([a-z0-9.-_])+@([a-z0-9-.])+.([a-z]{2,4})/i", $this -> recipient_address, $patt2);
  16.        if($patt2)
  17.            $blResult = $blFlag & true;
  18.        else
  19.            $blResult = $blResult & false;
  20.    
  21.        return $blResult;
  22.    }
  23. ?>


I bez znaczenia, czy wpiszę w recipient_name Jacek Kowalski, czy Jacek0Kowalski, funkcja zawsze zwraca true. Drugie wyrażenie działa bezbłędnie. Co jest źle? Plis help!

Edit:

Ok, już działa. Pierwsze wyrażenie zastąpiłem tym:

  1. <?php
  2. preg_match("/([a-z]){3,}+s([a-z]){2,}/i", $this -> recipient_name, $patt);
  3. ?>


Tylko może mi ktoś wytłumaczyć dlaczego \w nie działało? Przecież to klasa odpowiedzialna za słowa tak? A w słowach nie występują cyfry...

Ten post edytował 230005 5.03.2009, 21:20:01
Powód edycji: [erix] na przyszłość używaj odpowiedniego bbcode
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 01:54