Только цифры, не начинающиеся с 0:
/^[1-9][0-9]+$/
Удалить все начальные пробелы и ноль:
$num = preg_replace('/^(?:0|\s)*([0-9]+)$/', '\1', ' 0999');
Чтобы удалить все пробелы в строке, даже те, которые не являются ведущими, используйте str_replace. Это можно сделать с помощью регулярных выражений, но если вы собираетесь зациклить много чисел, это будет медленнее.