Php kontrollige, kas see on number. Regulaaravaldise kontrollimine arvu jaoks. Kontrollimine, kas muutuja on JavaScriptis täisarv

Hetkel käib saidil aktiivne töö uue sektsiooni käivitamiseks. Ja selle jaoks mõnda skripti kirjutades tekkis vajadus kontrollida muutujaid numbrite jaoks. Ja mitte ainult arv (lõppude lõpuks on ka 1,5 arv), vaid täisarv. Ja nii ma selle kontrolli tegin.

Kontrollimine, kas muutuja on PHP-s täisarv

PHP-s kontrollimiseks, kas arv on täisarv, kasutame regulaaravaldist:

Seega, kui muutuja on täisarv, teostame vajaliku toimingu ja vastupidi.

Kontrollimine, kas muutuja on JavaScriptis täisarv

JavaScriptis on asjad veidi erinevad ja siin peame kirjutama oma väikese funktsiooni:

Funktsioon number_scan(num) ( tagastamine (arv ^ 0) === num; )

ja kasutage seda testimiseks:

funktsioon number_scan(num) ( return (arv ^ 0) === num; ) var number = "1,3"; if(number_scan(number)) ( // Toiming, kui arv on täisarv) else ( // Toiming, kui arv on murdosa või muutuja pole üldse arv)

Ka siin, kui muutuja on võrdne täisarvuga, sooritatakse soovitud toiming ja vastupidi.

Võtke näiteks järgmine aadress: http://example.com/price.php?product=859844&page=99.

Skript kuvab tootetoote hindade loendi kauplustes; valikuline leheparameeter määrab lehe numbri. Kui lehte pole määratud ja URL näeb välja kujul http://example.com/price.php?product=859844 , siis kuvame esimese lehe.

Enne PHP 5.2.0 sai probleemi sellisel lihtsal viisil lahendada.

// Funktsioon parameetri saamiseks, mis on naturaalarv // $arr = parameetrite massiiv ($GET või $POST), $nimi = parameetri nimi, // Funktsioon tagastab parameetri väärtuse ehk $default kui parameeter puudub või see on vale funktsioon get_param_nat($ arr, $name, $default=null) ( if (!isset($arr[$name])) tagastab $default; // Kontrollige väga lihtsal viisil, teisendage parameeter numbriks, seejärel tagasi stringiks // Kui kõik on korras, peab saadud string vastama parameetri algväärtusele $val = $arr[$nimi]; $intval = intval($val); // Koormuse puhul kontrollime, et saadud arv oleks suurem kui null if (strval($intval) != = $val || $intval< 1) return $default; return $intval; } // Проверяем параметр product if (($product = get_param_nat($_GET, "product")) === null) die("Product not found"); // Получаем номер страницы $page = get_param_nat($_GET, "page", 1);

Alates versioonist 5.2.0 ilmus PHP-s rühm Filtri funktsioone: filter_var, filter_input, filter_var_array ja mitmed teised. Funktsioonid saavad kontrollida muutujaid täisarvude, ujukomanumbrite, e-posti, IP-aadresside, URL-i jne jaoks ning samuti tühjendada stringe vastavalt määratud parameetritele.

Kirjutame koodi ümber, kasutades funktsiooni filter_input.

Funktsioon get_param_nat($type, $name, $default=null) ( $val = filter_input($type, FILTER_VALIDATE_INT, array("min_range" => 1, "max_range" => PHP_INT_MAX)); // filter_input tagastab filtreerimisel vale nurjunud või null, kui muutuja on määratlemata if ($val === null || $val === false) return $default; return $val; ) // Kontrollige tooteparameetrit if (($product = get_param_nat(INPUT_GET) , "toode")) === null) die("Toodet ei leitud"); // Hangi lehekülje number $page = get_param_nat(INPUT_GET, "lehekülg", 1);

Väike testimine näitas, et funktsiooni get_param_nat kahe variandi töökiirus on peaaegu sama ja parameetri puudumisel, näiteks lehekülge pole määratud, töötab esimene variant isegi mõnevõrra kiiremini.

Seega on teie enda otsustada, mida kasutada. Mina isiklikult kasutan esimest funktsiooni, see on mulle kuidagi lähemal ja selgem.

Noh, väike lüüriline kõrvalepõige lõppu. Et vältida lehe dubleerimist otsingumootorite jaoks, näiteks ilma leheta ja lehe=1-ga, soovitan lehe peaosas määrata kanoonilise URL-i. See näeb välja umbes selline:

...