Например, используя модуль re :
1> re:run("1234a56", "^[0-9]*$").
nomatch
2> re:run("123456", "^[0-9]*$").
{match,[{0,6}]}
Или, используя понимание списка:
[Char || Char <- String, Char < $0 orelse Char > $9] == [].
Обратите внимание, что оба решения будут считать пустой ввод допустимым.