Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne, nie kopać jeśli było, ale szukałem
Speed666
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.01.2005

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


Witajcie,
Mam taki problem
  1. <?php
  2. if(!eregi(&#092;"[0-9]\", $cena)) $bledy .= '<TR><TD width=\"20\" CLASS=\"clear\"><IMG SRC=\"imgwarn.gif\"></TD><TD width=\"300\" CLASS=\"clear\">Podana cena jest nieprawidłowa.</TD></TR>';
  3.  
  4. ?>

Pole input text - ta linijka ma nie przepuszczać niczego innego poza czystymi liczbami (żadnego tekstu). Jednak niedziała - tylko wyrzuca ten błąd w momęcie gdy pole jest puste całkowicie. Można wpisać tekst a regułka tego nie wyłapie.
Dlaczego??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
tiraeth
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Niewyłapuje bo w ciągu ma się znaleźć cyfra/liczba a nie ciąg ma być cyfrą/liczbą biggrin.gif

  1. <?php
  2. if(!eregi(&#092;"^[0-9]{0,}$\", $cena))
  3. {
  4.  $bledy .= 'Podana cena jest nieprawidłowa.';
  5. }
  6. ?>


^ - oznacza, że podane wyrażenie musi wystapić na początku
$ - podane wyrażenie musi wystąpić na końcu
{0,} - wyłapuje ciągi wielkości od 0 do nieskończoności znaków

^[0-9]{0,}$ - całe wyrażenie musi być liczbą z przedziału od 0 do nieskończoności

Teraz napewno zadziała...

Ten post edytował Tiraeth 31.03.2005, 14:09:52
Go to the top of the page
+Quote Post
Speed666
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 17.01.2005

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


Dzięki, rzeczywiście - z tymi wyrażeniami regularnymi...
Go to the top of the page
+Quote Post
AxZx
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


witam

po zastanowieniu sie
edytuje poprzedni post:) i mam takie pytanie:

chce znalezc w tekscie {title} na <a name="raporty.$nr"></a><h2>

tylko zeby $nr zwiekszal sie gdy znajdzie nastepny





oej zrobilem to inaczej

w tekscie bede wpisywal
{1}{title} tytul1 {/title}
{2}{title} tytul2 {/title}
itd

i mam takie wyrazenie

preg_replace("/\{([0-9])\}\{title\}(.*)\{\/title\}/", "<a name=\"\\1\"></a><h2>\\2</h2>", $tresc);


a teraz jak walnac do tablicy wartosc \\2 czyli tytul1, tytul2 itd ?

znalazlem cos o przelaczniku /e ale jak to uzyc ?
i czy mozna wtedy zamieiniac te dane i jednoczesnie dopisywac do tablicy ?

Ten post edytował AxZx 14.04.2005, 12:46:30


--------------------
aplikacje internetowe | Symfony
Go to the top of the page
+Quote Post
tiraeth
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  1. <?php
  2. if(preg_match_all('#{title}(.*?){/title}#i', $tresc, $wynik))
  3. {
  4.  print_r($wynik);
  5. }
  6. ?>


Zobacz co to Ci wyświetla smile.gif
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 Aktualny czas: 20.08.2025 - 02:05