(1) Zap all characters except numbers and decimal point. Then reformat the number into whatever canonical form you prefer. So, for example, all of these inputs:
would be "normalized" to (your choice, but perhaps)
That doesn't handle "1 million", though, so you'd have to decide whether you want also handle "1 million" and "1 million 234 thousand" and "seventy four" and whatever.
(2) You could also accept any of the value listed above if you used a regular expression for validation. But, again, handling words is more difficult. Where do you draw the line at what words you allow?
Okay...off the top of my head (so whack me upside of it if I made an error):
function checkAmount( field )
// zap all non-numeric characters; convert to a number
var value = Number( field.value.replace( /[^\d\.]/g, "" ) );
if ( isNaN(value) )
alert("You must enter a number in the " + field.name + " field" );
// change the number range here as you wish, of course:
if ( value < 10000 || value > 1000000 )
alert("You must specify a number between 10,000 and 1,000,000");
// now re-format the value as a simple number for use by server processing:
field.value = value.toFixed(0); // rounds to nearest dollar