Creo que podría ser ésta:
Código:
var re=/^\d+(\.\d+)?$/;
document.write( re.test("-12.45") +"<br/>");
document.write( re.test("-5") +"<br/>");
document.write( re.test("0") +"<br/>");
document.write( re.test("14") +"<br/>");
document.write( re.test("15.01") +"<br/>");
Te explico:
/^\d+(\.\d+)?$/
^ --> principio
$ --> final
\d --> simboliza un dígito
+ --> simboliza Uno o más
? --> simboliza 0 ó 1
( )? --> conjunto opcional
\d+ --> uno o mas números
(\.\d+)? Un conjunto opcional formado por un punto y uno o más números
Supongo que habrá quedado claro.
Saludos.