Php nömrə olub olmadığını yoxlayın. Nömrə üçün müntəzəm ifadə yoxlanışı. JavaScript-də dəyişənin tam ədəd olub-olmadığını yoxlamaq

Hazırda saytda yeni bölmənin işə salınması üçün aktiv iş aparılır. Və bunun üçün bəzi skriptlər yazarkən rəqəmlər üçün dəyişənləri yoxlamaq lazım gəldi. Həm də təkcə bir rəqəm deyil (axı, 1,5 də bir rəqəmdir), tam rəqəmdir. Və bu yoxlamanı belə etdim.

PHP-də dəyişənin tam ədəd olub-olmadığını yoxlamaq

PHP-də nömrənin tam olub-olmadığını yoxlamaq üçün müntəzəm ifadədən istifadə edirik:

Müvafiq olaraq, əgər dəyişən tam ədəddirsə, biz lazım olan hərəkəti yerinə yetiririk və əksinə.

JavaScript-də dəyişənin tam ədəd olub-olmadığını yoxlamaq

JavaScript-də işlər bir az fərqlidir və burada öz kiçik funksiyamızı yazmalıyıq:

Funksiya nömrəsi_scan(num) ( qaytarmaq (num ^ 0) === ədəd; )

və sınaq üçün istifadə edin:

funksiya nömrəsi_scan(num) ( qaytarmaq (num ^ 0) === ədəd; ) var sayı = "1.3"; if(nömrə_skan(nömrə)) ( // Ədəd tam ədəddirsə hərəkət) else ( // Ədəd kəsrdirsə və ya dəyişən ümumiyyətlə ədəd deyilsə hərəkət)

Burada da dəyişən tam ədədə bərabərdirsə, istədiyiniz hərəkət yerinə yetirilir və əksinə.

Məsələn, aşağıdakı ünvanı götürün: http://example.com/price.php?product=859844&page=99.

Skript məhsul məhsulu üçün mağazalardakı qiymətlərin siyahısını göstərir isteğe bağlı səhifə parametri səhifə nömrəsini təyin edir. Səhifə göstərilməyibsə və url http://example.com/price.php?product=859844 kimi görünürsə, biz ilk səhifəni göstərəcəyik.

PHP 5.2.0-dan əvvəl problem bu sadə yolla həll edilə bilərdi.

// Natural ədəd olan parametrin alınması funksiyası // $arr = parametrlər massivi ($GET və ya $POST), $name = parametrin adı, // Funksiya parametrin dəyərini və ya $default qaytarır. parametr yoxdursa və ya səhvdirsə get_param_nat($ arr, $name, $default=null) ( əgər (!isset($arr[$name])) qaytarın $default; // Çox sadə şəkildə yoxlayın, çevirin parametri rəqəmə, sonra isə sətirə qayıdın // Əgər hər şey qaydasındadırsa, onda əldə edilən sətir parametrin orijinal dəyərinə uyğun olmalıdır $val = $arr[$name] $intval = intval($val); Əlimizdəki nömrənin sıfırdan böyük olduğunu yoxlayırıq 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);

5.2.0 versiyasından başlayaraq, PHP-də bir qrup Filter funksiyaları meydana çıxdı: filter_var, filter_input, filter_var_array və bir neçə başqa. Funksiyalar dəyişənləri tam ədədlər, üzən nöqtə nömrələri, e‑poçt, ip-ünvanlar, url və s. üçün yoxlaya bilər, həmçinin müəyyən edilmiş parametrlərə uyğun olaraq sətirləri təmizləyə bilər.

filter_input funksiyasından istifadə edərək kodu yenidən yazaq.

Get_param_nat funksiyası($type, $name, $default=null) ( $val = filter_input($type, FILTER_VALIDATE_INT, array("min_range" => 1, "max_range" => PHP_INT_MAX)); // filter_input süzgəcdən keçirsə, yalanı qaytarır. uğursuz və ya dəyişən qeyri-müəyyəndirsə null əgər ($val === null || $val === false) qaytarmaq $default ) // Əgər (($product = get_param_nat(INPUT_GET)) məhsul parametrini yoxlayın. , "məhsul")) === null) die("Məhsul tapılmadı"); // Səhifənin nömrəsini alın $page = get_param_nat(INPUT_GET, "səhifə", 1);

Kiçik bir sınaq göstərdi ki, get_param_nat funksiyasının iki variantının işləmə sürəti demək olar ki, eynidir və parametr olmadıqda, məsələn, səhifə göstərilmədikdə, birinci variant bir qədər daha sürətli işləyəcəkdir.

Beləliklə, nə istifadə edəcəyinizə qərar vermək sizin ixtiyarınızdadır. Mən şəxsən birinci funksiyadan istifadə edirəm; bu, mənə daha yaxın və aydındır.

Yaxşı, sonda kiçik bir lirik təxribat. Axtarış motorları üçün səhifənin təkrarlanmasının qarşısını almaq üçün, məsələn, səhifəsiz və page=1 ilə səhifənin baş hissəsində kanonik url-i göstərməyi məsləhət görürəm. Bu kimi bir şey görünəcək:

...