La labor de filtrado debería ser realizado en dos sitios: en el cliente web, mediante un pequeño código Javascript, y en el servidor, antes de introducir el dato en la base de datos.
Se debe hacer dos veces, para que el usuario vea que su dato se ha modificado, mientras que en el servidor hay que hacerlo porque no nos podemos fiar en ningún momento de los datos que nos envía el cliente web (el usuario puede haber manipulado los campos del formulario que le ofrecemos. Una vez estuve a punto de comprar una lavadora por $5 con ese truco).
Una buena opción, también, es definir el campo de la base de datos como numérica, y así será el motor de la base de datos el que haga un control más a ese dato.
Dices que esperas un número, pero no indicas si ese número debe ser entero, decimal, positivo, negativo, los dos, etc.
En el caso de esperar un número entero, positivo, te vale con quitar (
//) todo aquello (
/g) que no sea una cifra (
\D):
Using perl Syntax Highlighting
my $numero = '35.000.000';
$numero =~ s/\D//g;
print "$numero\n"; # 35000000Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4