You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NodeJS:如何将带单位的货币字符串转换为数值?

解决NodeJS中带单位货币字符串转数值的问题

直接给你一个实用的函数,专门处理你说的场景,代码注释写得很清楚,新手也能看懂:

function convertCurrencyToNumber(currencyStr) {
  // 移除货币符号等无关字符,只保留数字、小数点、K/M
  const cleanedStr = currencyStr.replace(/[^0-9.KM]/g, '');
  
  let multiplier = 1;
  let numPart = cleanedStr;

  // 判断末尾单位,设置对应倍数并截取数字部分
  if (cleanedStr.endsWith('K')) {
    multiplier = 1000;
    numPart = cleanedStr.slice(0, -1);
  } else if (cleanedStr.endsWith('M')) {
    multiplier = 1000000;
    numPart = cleanedStr.slice(0, -1);
  }

  // 转成数值后计算,用Math.round确保返回整数(不需要整数可直接返回乘积)
  return Math.round(parseFloat(numPart) * multiplier);
}

// 测试示例
console.log(convertCurrencyToNumber('$50K')); // 输出 50000
console.log(convertCurrencyToNumber('$25.5M')); // 输出 25500000
console.log(convertCurrencyToNumber('$123')); // 输出 123
console.log(convertCurrencyToNumber('0.8K')); // 输出 800
console.log(convertCurrencyToNumber('1.25M')); // 输出 1250000

逻辑说明:

  • 先用正则替换掉所有非有效字符,只留下数字、小数点和单位标识
  • 检查字符串结尾是否为K/M,对应设置1000或1000000的倍数,同时截掉单位部分
  • 将数字片段转为浮点数,乘以倍数后用Math.round得到整数结果(如果需要保留小数,直接返回乘积即可)

这个函数兼容带$、不带$,整数、小数,有单位和无单位的所有场景,完全覆盖你的需求。

内容的提问来源于stack exchange,提问作者TheNoviceProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 10:06:25