Maybe if we change the regex to something more accomodating, that perhaps included decimal numbers.... like maybe:
or stop doing preg_match altogether and run is_numeric inside of isnum.... ??
I am not certain about the rationale behind the isnum function and why it avoids matching decimal values... could that be something that was left out for some reason?
I for one, modded it to the regex posted above because I like the shorter input time and I'm working with currency calculations so I need it to validate decimal values that a user will be putting on a form.