if (preg_match('/^[0-9]+(?:\.[0-9]+)?$/', $subject))
{
# Successful match
}
else
{
# Match attempt failed
}
Примечание : если вы хотите ограничить количество десятичных разрядов, вы можете сделать что-то вроде этого:
/^[0-9]+(?:\.[0-9]{1,3})?$/im
So
100.000
будет соответствовать, тогда как
100.0001
привычка.
Если вам нужна дополнительная помощь, оставьте комментарий.
PS Если можете, используйте средство форматирования чисел, опубликованное выше. Нативные функции всегда лучше (и быстрее), в противном случае это решение вам пригодится.