Javascript -如何使用正则表达式从字符串中提取浮点数进行计算

oxcyiej7  于 2022-11-27  发布在  Java
关注(0)|答案(1)|浏览(249)

我有这个代码在一个vue的方法,我想优化它。我会从一个可湿性粉剂数据库得到一些信息,这些信息也包含一些文字,我不需要。
我不喜欢我使用的正则表达式,因为我需要使用模板文字来创建数据。
有没有更好的方法来进行计算和获得所需的信息?

extractTotal(prodInfo, prodPrice, code){
  let val = prodInfo.match(/[0-9]/g)
  let multiplier
  if( val.length > 2 ){
    multiplier = `${val[0]}${val[1]}${val[2]}`
  } else if( val.length === 1 ) {
    multiplier = val[0]
  } else {
    multipier = `${val[0]}.${val[1]}`
  }

  if( multiplier === '500' ){
    return (parseFloat(prodPrice) * this.q[code] / 2)
  } else if( multiplier === '1' ) {
    return (parseFloat(prodPrice) * this.q[code] * 1)
  } else {
    return (parseFloat(prodPrice) * this.q[code] * multiplier)
  }

}
pu3pd22g

pu3pd22g1#

使用此正则表达式:/[0-9]+\,?[0-9]*/g
然后可以将,字符转换为.

// Example
const input = '2,5kg meal 500g cookie'
const floats = input
  .match(/[0-9]+\,?[0-9]*/g)
  .map(a => parseFloat(
    a.replace(',','.')
  )
)

// floats => [2.5, 500]

相关问题