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

正则表达式移除价格输入中的美元符号及末尾零问题咨询

解决价格格式化问题:移除$和小数点后末尾零

嘿,我明白你要处理价格格式的需求了——去掉美元符号$,同时移除小数点后末尾的零,如果小数点后全是零的话连小数点也一起去掉对吧?你之前用的[.0]+$正则有问题,因为它会把所有末尾的点和零都删掉,但没法区分“末尾零”和中间非零数字后的零,也处理不掉开头的$。

解决方案

我们可以通过两步正则替换来实现需求,代码清晰且容易理解:

function formatPrice(priceStr) {
  return priceStr
    .replace(/^\$/, '') // 移除开头的美元符号$
    .replace(/\.?0*$/, ''); // 移除末尾的零及多余小数点
}

验证你的示例

我们用你给出的测试用例来验证:

  • formatPrice("$100") → 返回 "100"
  • formatPrice("$10.000") → 返回 "10"
  • formatPrice("$10.0100") → 返回 "10.01"
  • formatPrice("$10.1234") → 返回 "10.1234"

正则解释

  • 第一个正则/^\$/:^匹配字符串开头,\$转义后匹配美元符号,替换为空就去掉了开头的$。
  • 第二个正则/\.?0*$/:
    • \.?:匹配可选的小数点(?表示该字符出现0次或1次)
    • 0*:匹配任意数量的零(包括0个)
    • $:匹配字符串结尾
      这个正则会精准匹配字符串末尾的“小数点+任意零”或者“纯零”,替换为空后就正好满足你的格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:53:12