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

带点号千分分隔最多4位数字的正则实现及优化问题

实现方案

逻辑说明

要满足含千位分隔点总长度最多4位的要求,核心前提是原始纯数字最多保留4位:4位纯数字格式化后最多生成1个千位分隔点,总长度刚好为4(示例1234→1.234),如果纯数字超过4位,格式化后必然超过4位长度。

分步实现代码

你原有的代码只需要新增一步纯数字截断逻辑即可:

// 输入值处理函数
function formatInputValue(value) {
  // 1. 过滤非数字字符,截取前4位纯数字
  const pureDigits = value.replace(/\D/g, '').slice(0, 4);
  // 2. 新增千位分隔点
  return pureDigits.replace(/\B(?=(\d{3})+(?!\d))/g, '.');
}

合并单链写法(更简短)

可以把逻辑合并成单行实现,正则也做了等价简化:

value.replace(/\D/g, '').slice(0,4).replace(/\B(?=(\d{3})+$)/g, '.')

效果验证

  • 输入5100 → 输出5.100,匹配要求示例
  • 输入abc12345 → 输出1.234,总长度4位符合要求
  • 输入123 → 输出123,无多余分隔符
  • 输入12 → 输出12,符合所有规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:45:03