我试图从数据网格解析两个值。字段是数字,当它们有逗号(例如554,20)时,我无法获得逗号后的数字。我试过parseInt和parseFloat。我该怎么做呢?


当前回答

如果有人正在寻找一种从任意字符串解析float的方法,

可以这样做:

function extractFloat(text) {
  const match = text.match(/\d+((\.|,)\d+)?/)
  return match && match[0]
}

extractFloat('some text with float 5.25') // 5.25

其他回答

如果你像这样扩展String对象..

String.prototype.float = function() { 
  return parseFloat(this.replace(',', '.')); 
}

. .你可以这样运行它

"554,20".float()
> 554.20

也适用于dot

"554.20".float()
> 554.20

typeof "554,20".float()
> "number"

Try

让STR ="554,20"; Let float = +str.replace(',','.'); Let int = str.split(',').map(x=>+x); console.log({浮动,int});

如果有人正在寻找一种从任意字符串解析float的方法,

可以这样做:

function extractFloat(text) {
  const match = text.match(/\d+((\.|,)\d+)?/)
  return match && match[0]
}

extractFloat('some text with float 5.25') // 5.25

我遇到了同样的问题,只是我事先不知道千位分隔符和小数点分隔符是什么。我最终编写了一个库来实现这个功能。如果你感兴趣,请访问:https://github.com/GuillaumeLeclerc/number-parsing

如果它们是单独的值,试试这个:

var values = "554,20".split(",")
var v1 = parseFloat(values[0])
var v2 = parseFloat(values[1])

如果它们是单个值(比如在法语中,1 / 2写成0,5)

var value = parseFloat("554,20".replace(",", "."));