[PHP] regularne vyrazy

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod porter 12. 12. 2006 16:39

vie mi niekto spravit regularny vyraz, aby kontroloval ci cislo je zapisane v tvare napr.:
1.2
1,2
1,0
1.0
1
2
skratka aby to bolo bud len cele cislo > 0, alebo desatinne cislo s ciarkovym alebo bodkovym oddelovacom. Sa s tym akosi trapim, tak budem vdacny ak niekto pomoze :)


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.
HP nx9110 P4@2,8GHz, 512MB RAM, 40GB disk, ATI 9000IGP 128MB, Combo a ...
porter
Junior

Odeslat příspěvekod Imjagpul 12. 12. 2006 17:11

Kód: Vybrat vše
\d*[.,]?\d+
Imjagpul
Junior
Uživatelský avatar

Odeslat příspěvekod porter 12. 12. 2006 17:34

no neviem, je to urcite spravne ?

echo ereg("\d*[.,]?\d+",1.0);

a jednotku mi to veru nevypise

kde je nejaky slusny navod na pochopenie regularnych vyrazov ? nieco som aj hladal, ale aj tak ich neviem takmer vobec pouzivat :(
HP nx9110 P4@2,8GHz, 512MB RAM, 40GB disk, ATI 9000IGP 128MB, Combo a ...
porter
Junior

Odeslat příspěvekod Imjagpul 12. 12. 2006 17:53

Kód: Vybrat vše
echo preg_match('/\d*[.,]?\d+/', 2.0);

nebo
Kód: Vybrat vše
echo ereg("[0-9]*[.,]?[0-9]+", 2.0);
Imjagpul
Junior
Uživatelský avatar

Odeslat příspěvekod porter 12. 12. 2006 18:05

ja si to tusim spravim rucne a serem na cele regularne vyrazy
Kód: Vybrat vše
echo  preg_match('/\d*[.,]?\d+/', "1a1");
= 1
:( :cry: :-/
HP nx9110 P4@2,8GHz, 512MB RAM, 40GB disk, ATI 9000IGP 128MB, Combo a ...
porter
Junior

Odeslat příspěvekod Imjagpul 12. 12. 2006 18:13

Jestli necheš regulérní výraz (jak bylo v zadání), tak nejjednodušší asi bude použít:
Kód: Vybrat vše
$val="2,6";
$val=str_replace ( ",", ".", $val);
echo is_numeric($val);


Kdyby někoho zajímaly ty reg. výr, tak to má být asi takhle:
Kód: Vybrat vše
echo preg_match('/^\d*[.,]?\d+$/', "1a1"); // == false
echo preg_match('/^\d*[.,]?\d+$/', "2,5"); // == 1
Imjagpul
Junior
Uživatelský avatar

Odeslat příspěvekod 2ge 13. 12. 2006 09:49

pokusy to boli pekne, ale asi ani jeden nie je uplne spravny
Kód: Vybrat vše
preg_match('/^\d+(?:[,.]\d+)?$/', $cislo); //$cislo si trimuj predtym

otazka je ci povazujes ".5" za cislo. Dalsia vec, riesenie cez is_numberic je sice fajn, ale clovek chcel len kladne cisla :)
SubDownloader - stahuj a nahravaj titulky k filmom pomocou opensource programu z OpenSubtitles.org
2ge
Junior
Uživatelský avatar

Odeslat příspěvekod 2ge 13. 12. 2006 10:00

porter píše:kde je nejaky slusny navod na pochopenie regularnych vyrazov ? nieco som aj hladal, ale aj tak ich neviem takmer vobec pouzivat :(


Ja som sa ich ucil z takeho PDF, jeden cech to pisal. Neviem to sice najst, ale pomoze ti aspon:
http://labe.felk.cvut.cz/~posik/osa/UvodDoRE.pdf
http://www.kai.vslib.cz/~satrapa/docs/regvyr/
http://www.regularnivyrazy.info
SubDownloader - stahuj a nahravaj titulky k filmom pomocou opensource programu z OpenSubtitles.org
2ge
Junior
Uživatelský avatar

Odeslat příspěvekod porter 14. 12. 2006 15:33

DIKY MOC :) konecne nieco co spravne funguje.A dakujem aj za linky, idem hned studovat
HP nx9110 P4@2,8GHz, 512MB RAM, 40GB disk, ATI 9000IGP 128MB, Combo a ...
porter
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků