In this case, it becomes a question of "is there a numeral in this string?"
So yes, regex is probably a better way.
The pattern should be as simple as:
/\d/
Conversely, you can loop over the string an test using ctype_digit().
If no character returns true, then the string has no numerals.
e.g.
function hasDigit($str) {
$len = strlen($str);
for ($i = 0; $i < $len; $i++)
if (ctype_digit($str{$i}))
return true;
return false;
}