0

如何将此字符串转换为浮点数?我想要结果 900.50

情况1:var convertThis = 'any string here 900,50 also any string here';

案例2:var convertThis = 'any string here 900.50 also any string here';

这个怎么做?

4

3 回答 3

1

你可以这样做:

var num = parseFloat(convertThis.replace(/[^\d\.,]/g,'').replace(/,/,'.'));

但是请注意,一旦您的文本中有多个数字或点,这就会中断。如果你想要一些可靠的东西,你需要更精确地了解字符串可以是什么。

假设您想从更复杂的字符串中提取所有数字,您可以这样做

var numbers = convertThis.split(/\s/).map(function(s){
    return parseFloat(s.replace(',','.'))
 }).filter(function(v) { return v });

在这里,你会得到[900.5]

于 2013-08-08T06:46:55.407 回答
1

试试下面的代码:

var text = 'any string here 900,50 also any string here';
var matched = text.match(/\d+[,.]\d+/)[0].replace(',', '.');
var num = parseFloat(matched, 10);
console.log(matched);
console.log(num);

印刷:

900.50
900.5
于 2013-08-08T06:46:55.500 回答
0

var myFloat = +(convertThis.match(/\d+[,\.]?\d+/)[0].replace(",","."))

于 2013-08-08T06:47:00.173 回答