[英]Javascript - How to extract float number from a string for calculation using regex
我在一个 vue 方法中有这段代码,我想优化它。 我将从 WP 数据库中获取一些信息,这些信息还包含一些我不需要的文本。
我不喜欢我使用的正则表达式,因为我需要使用模板文字创建数据。 使用prodInfo
变量传递给方法的信息看起来像这个2,5kg meal
或500g cookie
有没有更好的方法来进行计算和获取所需的信息?
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)
}
}
使用此正则表达式: /[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]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.