Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_match
Forum PHP.pl > Forum > PHP
akurczyk
Jak zrobić aby w tym warażeniu można było używać tylko małych znaków?
  1. <?php
  2. preg_match("/^[a-z0-9]$/D", $_POST['login']);
  3. ?>


I jeszcze jedno co jest z tym wyrażeniem przechodzi nawet jeśli podam sfddsafre2e32?
  1. <?php
  2. preg_match("/^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_].[a-z]{2,4}$/D", $_POST['e-mail']);
  3. ?
  4. ?>
wipo
tylko male znaki i cyfry
  1. <?php
  2. preg_match("/^[a-z0-9]$/", $_POST['login']);
  3. ?>

a z tym drugiem to sprobuj tak:
  1. <?php
  2. preg_match("/^([a-zA-Z0-9.-_]+)@([a-zA-Z0-9.-_]+).[a-z]{2,4}$/", $_POST['e-mail']);
  3. ?>
akurczyk
a jak sprawdzić poprawność imienia i nazwiska?
chodzi mi o to że mają być 2-4 wyrazy w dwóch ostatnich może występować -.
wipo
  1. <?php
  2. preg_match('/([A-Za-z]+) ([A-Za-z]+) ([A-Za-z-]+) ([A-Za-z-]+)/',$string)
  3. ?>
akurczyk
ale żeby minimalnie były 2 wyrazy a maksymalnie 4
wipo
To wg mnie preg_matchem sie tego zrobic nie da
ja bym zrobil tak
[code]
$wpisane=explode('-',$_POST['imie_nazwisko']);
if (count($wpisane)<2 || 4count($wpisane)>4) die('za duza ilosc parametrow');
for($x=0;$x<count($wpisane);$x++){
if ($x<2)
if (!preg_match('/[A-Z]([a-z]+)/',$wpisane[$x])) die('zly parametr '.$x);
else
if (!preg_match('/([A-Za-z\-]+)/',$wpisane[$x])) die('zly parametr '.$x);
}
die('dobrze');
[/php]

powinno dzialac ale pisalem to z palca wiec moze byc jakis blad
akurczyk
a w jednym preg_match?
wrzasq
pierwszy problem - w pierwszym wyrazeniu musi być po prostu plus, wasze wersje dopasowuja jedynie jeden znak:

  1. <?php
  2. preg_match('/^[a-z0-9]+$/', $_POST['login']);
  3. ?>


imie i nazwisko:
  1. <?php
  2. preg_match('/^([A-Z][a-z]+) ([A-Z][a-z]+)( ([A-Z][A-Za-z-]+)){0,2}$/', $string);
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.