Javascript用正则表达式替换点,但不起作用

时间:2013-05-31 23:53:03

标签: javascript regex replace

对不起,我在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

我只想替换所有点(因此它不会影响数学运算,因为点是数字上的小数)。

2 个答案:

答案 0 :(得分: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/

答案 1 :(得分:0)

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

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

parseInt()应该可以正常工作,并为您提供950000