Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenia regularn
Forum PHP.pl > Forum > Przedszkole
b2n
Witam, Pisze na forum dla początkujących bo w tym raczkuje ;-)

Chodzi mianowicie o Wyrażenia Regularne choćby nie wiem co jeszcze tego nie pojołem ;-(

potrzebuje wyrazenia które będzie sprawdzac numer tel kom w opraciu o schemat


48607312151


czyli musi być "48" trzecia cyfra to "5 lub 6 lub 8" i dalej 8 cyfr z zakresu 0-9

i jeszcze 2 ;-)

format

AAA23333421

więc pierwsze trzy znaki to muszą być litery z zakresu A-Z , a-z a dalej dowolna ilosc cyfr z zakresu 0-9

będę bardzo wdzięczny za pomoc ;-)

Pozdrawiam
s_w_ir
Kod
     <?php
$a = 48675899054;
$b = 48222222222;
$c = 49666666666;

if (ereg("48[568][0-9]{8}",$a)) echo("podany numer 1 good");
if (ereg("48[568][0-9]{8}",$b)) echo("podany numer 2 good");
if (ereg("48[568][0-9]{8}",$c)) echo("podany numer 3 good");
?>


to na pierwsze, a z drugim coś nie idzie, jakiś błąd:)
b2n
Hej dzięki za szybką odp ale jest mały kłopot bo spełnia jedynie warunki

a) 48
cool.gif 5,6,8
c) 8 cyfr

w tym c) jak dam 9 cyfr to tez przepusci a to musi być max 8 cyfr bo teraz jest jakby min

48855555555dd5

i nawet jak dam tak to zadziała
s_w_ir
rzeczywiscie mój błąd zaraz wkleje tu poprawny kod(ale mam zapłon:)

**********edit first:
Kod
     <?php
$a = "48675899054";
$b = "48622222222";
$c = "49666666666";

if (ereg("^48[568][0-9]{8}$",$a)) echo("podany numer 1 good");
if (ereg("^48[568][0-9]{8}$",$b)) echo("podany numer 2 good");
if (ereg("^48[568][0-9]{8}$",$c)) echo("podany numer 3 good");
?>
to jest już good
a tu dla drugiego
Kod
<?php
$a=  "aaaaaa66";
$b = "kLo69";
$c  = "a986AAAa";

if (ereg("^[A-z]{3}[0-9]*$",$a)) echo("podany ciag 1 good");
if (ereg("^[A-z^0-9]{3}[0-9]*$",$b)) echo("podany ciag 2 good");
if (ereg("^[A-z^0-9]{3}[0-9]*$",$c)) echo("podany ciag 3 good");
?>


*******edit second
Sory że wcześniej namieszałem, dawno sie tym nie bawiłem. Ale wszyscy używaja innej funkcji niż ereg() do sprawdzania wyrażeń regularnych bodajże preg_match()(zaraz to sprawdze)

*******edit third
MIałem racje to ta funkcja, musisz o niej poczytać w manualu
b2n
Śmiga pięknie ;-) dziękuje serdecznie teraz mam jakies większe podstawy do zrozumienia o co chodzi ;-) w tych regularnych ;-)

Pozdrawiam serdecznie i jeszcze raz dziękuje


====
A jednak mały kłopt przy literkach jak daje "AB13" to też przechodzi ;-( a ZAWSZE musza być 3 litery na początku
=====

oka ominołem

^[A-z]{3}[0-9]*$

teraz muszą być 3 litery ale teraz jeszcze jak zrobić że MUSI być conajmniej jedna cyfra
s_w_ir
Cholercia bo troszke jeszcze jest może namieszane jakkolwiek i tak będzie działać, chodzi o wpis:
Kod
if (ereg("^[A-z]{3}    //...
if (ereg("^[A-z^0-9]{3}   //...

Oby dwa oznaczają to samo więc nie ma problemu ale zapis ^[0-9] oznacza bez cyfr. Chodzi mi o to że możesz go usunąć. I tyle. Pozdrawiam.
b2n
tak i to jest oki tylko że teraz jak dam "AAA" to napisze mi oki a minum to musi być np "AAA1" że minimum jedna cyfra musi być po ciągu 3 liter pozarym oki i pozmieniałem na preg_mach jak radziłeś

PS. przepraszam że tak mieszam ;-)
s_w_ir
Nie napisałeś wcześniej że conajmniej jedna:) zamiast * daj + :
Kod
"^[A-z]{3}[0-9]+$"
nie wiem dlaczego miałes problem jak miałes dwie litery u mnie jest ok

edit*****
Dobrze że mówisz co jest źle. Problemy trzeba rozwiązywać dotąd aż nie będzie już żadnych wątpliowści:)

edit2*****
Hehe tak to bywa jak sie cały czas edytuje posty:) Również dobranoc:)
b2n
troszke się wymijaliśmy odpowiedziami ;-) ale już jest pięknie gra i buczy dziękuje jeszcz raz i jesli zbierasz się w spanko to dobranoc ;-)
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.