我有一个像“-12.5百万”的数字,我想在javascript中使用正则表达式将其转换为“-12.5”。 我这样做是为了
var str="-12.5 Million";
var result=str.replace("[^0-9\.-]", "");
alert(result);
但我的字符串不变。谁能帮忙???
这是我创建的fiddle。 Thanx提前:))
答案 0 :(得分:4)
您需要提供RegExp实例文字(不只是一些字符串)来替换方法并使用全局修饰符g
:
var str = "-12.5 Million";
var result = str.replace(/[^0-9.-]/g, "");
alert(result);

但是在这种情况下你真的不需要regexp,你可以简单地使用parseFloat方法,因为它会在找到第一个非数字字符后停止解析字符串:
parseFloat解析其参数,一个字符串,并返回一个浮点数。如果它遇到符号(+或 - ),数字(0-9),小数点或指数以外的字符,则返回该点的值,并忽略该字符和所有后续字符。
所以你可以这样做:
alert( parseFloat("-12.5 Million") );