| Autor | Správa |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: St 05.12.07 16:43 |   |
zdravim.
z formulara do premennej $vek nacitavam hodnotu
ako ju mam osetrit cez fciu ereg, aby mi to vracalo 1ku len ked je to cislo naozaj cislo ! a nie su tam znaky a podobne
zatial to mam takto: $cislo = ereg("[0-9]", $vek);
ale vezme mi to, aj ked zadam napriklad vek: 23h .. proste hocijake pismenko tam vlozim ...
takze este raz: aka podmienka je na kontrolu, ze retazec je cislo a obsahuje len cisla.
mozno to ide aj inak, ale mna napadla hned funkcia ereg
+ este by nezaskodilo overit, ci je to cislo mensie ako 4 cifry, asi by to malo byt: and strlen($vek)>3) |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: St 05.12.07 17:01 |   |
da sa to vyriesit viacerymi sposobmi, trebars aj cez ten ereg, ako si spomenul, takze sa zameriam prave nan:
| kód: | | ereg("[[:digit:]]", $vek) |
a ked tam chces mat max 3 cislice, tak
| kód: | | ereg("[[:digit:]]{1,3}", $vek) |
|
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: St 05.12.07 17:13 |   |
| stenley napísal: | da sa to vyriesit viacerymi sposobmi, trebars aj cez ten ereg, ako si spomenul, takze sa zameriam prave nan:
| kód: | | ereg("[[:digit:]]", $vek) |
a ked tam chces mat max 3 cislice, tak
| kód: | | ereg("[[:digit:]]{1,3}", $vek) |
|
dakujem ... super, to som potreboval ... to {1,3} znamena od 1 do 3 pocet prvkov? ak by som chcel max 5 miestne bolo by to {1,5} ?
vidim, ze si odbornik, vdaka ... a ako by ten ereg vyzeral povedzme, keby som chcel maximalne 5 znakov, kde prve 2 znaky by mali byt cislice a ostatne 3 znaky velke pismena abecedy, napriklad: 54AHOJ |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: St 05.12.07 17:20 |   |
jj, presne ako hovoris, {x,y} znamena od x do y znakov
ak chces presne 5 znakovy retazec (2 cislice + 3 velke pismena), tak potom
| kód: | | ereg("^[0-9]{2}[A-Z]{3}$", $string) |
v tom predchadzajucom priklade som zabudol dat zaciatok (^) a koniec retazca ($) |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: St 05.12.07 17:42 |   |
| stenley napísal: | jj, presne ako hovoris, {x,y} znamena od x do y znakov
ak chces presne 5 znakovy retazec (2 cislice + 3 velke pismena), tak potom
| kód: | | ereg("^[0-9]{2}[A-Z]{3}$", $string) |
v tom predchadzajucom priklade som zabudol dat zaciatok (^) a koniec retazca ($) |
vdaka, takze moja povodna uloha ma vyzerat takto?
ereg("^[[:digit:]]{1,3}$", $vek)
preco su tam 2 zatvorky [[ a ]] ? myslim to digit, co je v 2 zatvorkach. |
| |
  |
 |
mondzo
 Užívateľ
 Založený: 09.02.2007 Príspevky: 248
 | Zaslal: St 05.12.07 17:57 |   |
jednoduchsie by sa dalo checknut aj cez php funckiu is_numeric (ci je cislo, lenze to moze byt aj desatinne), preto pre vek je lepsie pouzit vyssie spomenute riesenie... |
| |
   |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: St 05.12.07 20:05 |   |
| dulius napísal: | vdaka, takze moja povodna uloha ma vyzerat takto?
ereg("^[[:digit:]]{1,3}$", $vek)
preco su tam 2 zatvorky [[ a ]] ? myslim to digit, co je v 2 zatvorkach. |
ano, ma to tak byt, ved si to vyskusal a uvidis, ci to funguje ako ma...
[[:nieco:]] - predstavuje urcitu skupinu znakov, zalezi od toho, co za "nieco" dosadis, napr:
[[:digit:]] - cislice 0-9
[[:alfa:]] - pismena a-z A-z
[[:alnum:]] - alfanumericke znaky
atd |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
dulius
 Užívateľ
 Založený: 20.01.2007 Príspevky: 348
 | Zaslal: St 05.12.07 20:46 |   |
dakujem, uz je mi to jasne |
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
|