字符串:用Javascript中的表达式替换函数

时间:2015-10-27 10:16:19

标签: javascript math replace

表示货币的字符串将转换为数字。 例如:

Input : "125.632.454.454.403,51"
Output expected : 125632454454403.51

目前我正在尝试:

试用1)

a = "125.632.454.454.403,51";
a.replace(/./, '');
  

结果=" 25.632.454.454.403,51"

试用2)

a = "125.632.454.454.403,51";
a.replace(/./g, '');
  

结果=""

但是我希望替换函数可以找到"。"的所有出现次数。并替换为""。

试用3)

a = "125.632.454.454.403,51";
a.replace(/,/, '');
  

结果=" 125.632.454.454.40351"

如果我找到解决办法,我会很高兴。

6 个答案:

答案 0 :(得分:1)

您需要使用\.代替. dot (.) 匹配单个字符,而不关心该字符是什么。您也可以使用单个 replace() 进行回调。



var str = "125.632.454.454.403,51";

str = str.replace(/\.|,/g, function(m) {
  return m == '.' ? '' : '.'
});

document.write(str);




答案 1 :(得分:1)

尝试:

var str = "125.632.454.454.403,51" ;
var result = str.replace(/\./g,'').replace(/\,/g,'.');

console.log(Number(result))

答案 2 :(得分:0)

replace 返回已更改的字符串,它不会就地更改它!

您可以参考documentation

找到这个

答案 3 :(得分:0)

使用

var Result = a.split('.').join("");

console.log(Result);

答案 4 :(得分:0)

.在正则表达式中具有特定含义。它匹配任何角色。如果你实际上在寻找角色本身,你需要逃离点

var a = "125.632.454.454.403,51";
var result = a.replace(/\./g,"");

答案 5 :(得分:0)

你也可以(parseFloat(a.replace(/[^0-9]+/g,""))/100) 如果您必须为多种货币执行此操作,我建议您查看autonumeric.js。它为您处理所有这些。