0

抱歉,我在 stackoverflow 上找不到工作点替换。人们询问更换

var str = '. 950.000.000, -';
str = str.replace(/\./gi, '');
alert(parseInt(str)); // yes, it works & will output correctly

但是,当我的 'str' var 是:Rp 时,它不起作用。950.000,-。这是我所在地区的货币格式,我想用它做数学。我这样做,但不工作:

var str = 'Rp. 950.000, -';
str = str.replace(/\./gi, '');// i dont know, but the str values now is nothing
alert(parseInt(str)); // sure, it outputs nothing

我只想替换所有点(所以它不会打扰数学运算,因为点是数字的小数)。

4

2 回答 2

2

为什么不用 替换所有不是数字的东西\D

var str = 'Rp. 950.000, -';
str = str.replace(/\D/gi, '');// i dont know, but the str values now is nothing
alert(parseInt(str, 10));

工作示例 http://jsfiddle.net/e8dMD/1/

于 2013-05-31T23:56:29.463 回答
0

删除字符串中的所有点后,'Rp. 950.000, -'您将剩下'Rp 950000, -'. 如果您尝试使用此字符串,parseInt()它将因为开头的字母和结尾的其他字符而失败。如果要从字符串中删除所有非数字字符,可以使用以下命令:

str = str.replace(/\D/g, '');

在此之后parseInt()应该可以正常工作并给您950000.

于 2013-05-31T23:56:33.087 回答