Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить, что строка содержит число

Короткий ответ

is_numeric() возвращает true для целых и дробных чисел в строке:

<?php
 
var_dump(is_numeric('42'), is_numeric('3.14'), is_numeric('12abc'));

Результат:

bool(true)
bool(true)
bool(false)

Только цифры

is_numeric() пропускает и '1e5', и '-7', и ' 5'. Если нужны только цифры, используйте ctype_digit():

<?php
 
var_dump(is_numeric('1e5'), ctype_digit('1e5'));
var_dump(ctype_digit('2026'), ctype_digit(''));

Результат:

bool(true)
bool(false)
bool(true)
bool(false)

Целое число в границах

filter_var() проверяет и сразу возвращает число:

<?php
 
var_dump(filter_var('25', FILTER_VALIDATE_INT, ['options' => ['min_range' => 1, 'max_range' => 100]]));
var_dump(filter_var('250', FILTER_VALIDATE_INT, ['options' => ['min_range' => 1, 'max_range' => 100]]));

Результат:

int(25)
bool(false)

Функции из этого ответа

  • is_numeric — Проверяет, является ли значение числом или строкой с числом.
  • filter_var — Проверяет или очищает значение по заданному правилу.
  • preg_match — Проверяет строку по регулярному выражению.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.