Ja bym natomiast zaproponował wyrażenie :
#^[0-9]([0-9,]*[0-9])?$#si
Obejmuje ono również przypadki gdu nie ma żadnego przecinka. Można to szybko sprawdzić uruchamiają poniższy skrypt :
<?php
$dane[] = '34,5,15,6,122,10,1,8';
$dane[] = '34,5,15,6,122,10,1.8';
$dane[] = '34,5,15,6,1g22,10,1,8';
$dane[] = '34,5,1dfgfd5,6,122,10,1,8';
$dane[] = '34,5,15,6,122,10gdfg,1,8';
$dane[] = '34,5,15,6,dfgfdgd122,10,1,8';
$dane[] = '34,5,15,6,122,10,1,8,';
$dane[] = '3aasasas,5,15,6,122,10,1,8,';
$dane[] = '34,5,15a,6,122,10,1,8,';
$dane[] = 'ę34,5,15,6,122,10,1,8,';
$dane[] = '34,5,15,6,1sdfsdfsd22,10,1,8,';
$dane[] = '34,5,1225,12126,122,121120,11232,8';
$dane[] = '3,8';
$dane[] = '3';
$dane[] = '3.0';
foreach ($dane as $key => $val) {
if (preg_match('#^[0-9]([0-9,]*[0-9])?$#si', $val)) else
else
print '- ' . $val . "\n"; }
?>