Autor Zpráva
Shackar
Profil
Zdravim,

potrebujem overit zadanu hodnotu vo formulari. Potrebujem, aby sa vypísala chyba, ked je policko vyplnene, honota v nom je mensia alebo rovna nule, a ak obsahuje pismena a znaky ako *, / +, -, @, _, atd. Prve dve casti som urobil:
if (!empty($krutiaci_moment) && $krutiaci_moment <= 0) {
  $error[] = urlencode('Pre krútiaci moment zadajte kladné nenulové číslo prosím.<br />');
Ale tie pismena a špecialne znaky neviem, viete mi s tým poradiť.
Dakujem pekne.
Duchaplny
Profil
Shackar:
preg_match("/^.+@.+\.\*-_.+$/",$krutiaci_moment);

EDIT: nie sú tam všetky znaky, príp. si ten príklad doplňte/upravte..
Tori
Profil
Nebylo by lepší jednodušší kladné vymezení (tj. co smí proměnná obsahovat) + negace výsledku?
if (!preg_match('~^[0-9., ]+$~', $krutiaci_moment)) {
    $error[] = urlencode('Pre krútiaci moment zadajte kladné nenulové číslo prosím.<br />');
}
JKHouba
Profil *
A nestačilo by jen zkontrolovat, jestli zadaná hodnota je větší, než nula a vše ostatní je pak automaticky považováno za false? Pak by nebo potřena používat regulární výrazy a vše by se o dost zkrátilo...
Tori
Profil
JKHouba:
To záleží na Shackarovi, jestli chce povolit i zápis typu 1e5 (resp. desetinná čísla) nebo ne.
JKHouba
Profil *
Tori:
Ale v inputu by to už mělo vracet NaN, ne číslo. Nebo se pletu?


JKHouba:
no jo, pokud se to vezme jako umocnění, tak to asi ne..

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: