除了数字,' - '符号和句点,删除所有内容

时间:2015-10-11 18:46:58

标签: javascript regex

我有一个像“-12.5百万”的数字,我想在javascript中使用正则表达式将其转换为“-12.5”。 我这样做是为了

var str="-12.5 Million";
var result=str.replace("[^0-9\.-]", "");
alert(result);

但我的字符串不变。谁能帮忙???

这是我创建的fiddle。 Thanx提前:))

1 个答案:

答案 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") );