格式化金额最小0.01 最大999999.99 且只能输入两位小数

const formatAmount = (val) => {
  val = String(val).replace(/[^0-9.]/g, '');
  if (!/[\d.]/.test(val)) return '';
  if (val > 999999.99) return '999999.99';
  const [integer = '', decimal = ''] = (val + '.').split('.');
  const intPart = integer.slice(0, 6);
  const decPart = decimal.slice(0, 2);
  let result = decPart ? `${intPart}.${decPart}` : intPart;

  if (result.startsWith('.')) result = '0' + result;
  
  const num = parseFloat(result);
  if (isNaN(num)) return '';
  if (num < 0.01) return '0.01';
  if (num > 999999.99) return '999999.99';

  return result;
};

  

posted @ 2025-10-22 10:05  南瓜壳  阅读(2)  评论(0)    收藏  举报