I have 2,299.00
as a string and I am trying to parse it to a number. I tried using parseFloat
, which results in 2. I guess the comma is the problem
Remove anything that isn't a digit, decimal point, or minus sign (-
):
var str = "2,299.00";
str = str.replace(/[^\d\.\-]/g, ""); // You might also include + if you want them to be able to type it
var num = parseFloat(str);
Updated fiddle
Note that it won't work for numbers in scientific notation. If you want it to, change the replace
line to add e
, E
, and +
to the list of acceptable characters:
str = str.replace(/[^\d\.\-eE+]/g, "");