input 输入价格

// 价格输入框  decimal: 精度
export function inputPrice(val, decimal) {
  val = val.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
  val = val.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
  val = val
    .replace('.', '$#$')
    .replace(/\./g, '')
    .replace('$#$', '.')
  switch (decimal) {
    case 1:
      val = val.replace(/^(-)*(\d+)\.(\d{1}).*$/, '$1$2.$3')
      break
    case 2:
      val = val.replace(/^(-)*(\d+)\.(\d{2}).*$/, '$1$2.$3')
      break
    case 3:
      val = val.replace(/^(-)*(\d+)\.(\d{3}).*$/, '$1$2.$3')
      break
    case 4:
      val = val.replace(/^(-)*(\d+)\.(\d{4}).*$/, '$1$2.$3')
      break
    case 5:
      val = val.replace(/^(-)*(\d+)\.(\d{5}).*$/, '$1$2.$3')
      break
    case 6:
      val = val.replace(/^(-)*(\d+)\.(\d{6}).*$/, '$1$2.$3')
      break
    case 7:
      val = val.replace(/^(-)*(\d+)\.(\d{7}).*$/, '$1$2.$3')
      break
    case 8:
      val = val.replace(/^(-)*(\d+)\.(\d{8}).*$/, '$1$2.$3')
      break
    case 9:
      val = val.replace(/^(-)*(\d+)\.(\d{9}).*$/, '$1$2.$3')
      break
    default:
      val = val.replace(/^(-)*(\d+)\.().*$/, '$1$2.$3')
      break
  }
  // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
  if (val.indexOf('.') < 0 && val != '') {
    if (val.length > 9) {
      val = val.substr(0, 9)
    }
    val = parseFloat(val)
  }
  return val
}
 
 
 
 
 
posted @ 2022-01-18 18:02  起风了1573  阅读(158)  评论(0)    收藏  举报