Использование php preg_match для проверки значений с плавающей точкой

Использование php (preg_match) для проверки, является ли переменная плавающей.
Поиск в Интернете, но до сих пор не нашли тот, который мне нужен. Посоветуйте, пожалуйста.

мои требования:
ДЕЙСТВУЕТ
(только цифры и одна точка)
0.1 (все, что начинается с 0, должно следовать за точкой, а затем числом)
1.1234567890 (макс. 10 знаков после запятой)

НЕДЕЙСТВИТЕЛЬНЫЙ
пустое / пространство
0
0.
0.0
00,0
0.0.0
01
целые
+0.1 (без плюсов)
-0.1 (без знака минус)
0,1
01,1
1.
0,1e38 (без экспоненты)

Решения:

/^(?=.*[1-9])(?!0\d)([0-9]{1,10})(\.[0-9]{1,10})$/

2 ответа

Все просто так:

if (($num = filter_var($var, FILTER_VALIDATE_FLOAT)) !== false) {
    echo "Yay $num is a float!\n";
}

Ты можешь использовать:

preg_match_all('!\d+(?:\.\d+)?!', $str, $matches);
Другие вопросы по тегам