JS金额、数字、价格正则校验及格式化

保证不严格的校验格式也可以通过,比如说:01.0110,.0100,1.

示例为固定保留两位小数点及空或者不符合要求的时候返回的格式化值
const moneyTwoLine = (value) => {
  const reg = /^(([1-9]\d*)|^\d*)(\.{0, 1}\d*)$/
  if (reg.test(value.toString())) return '-'
  if (isNaN(value) || !value) return '-'
  return Number(value).toFixed(2)
}

const moneyTwoZero = (value) => {
  const reg = /^(([1-9]\d*)|^\d*)(\.{0, 1}\d*)$/
  if (reg.test(value.toString())) return '0.00'
  if (isNaN(value) || !value) return '0.00'
  return Number(value).toFixed(2)
}

动态参数方法,按照自己的业务需要保留值及返回空值格式

const formatMoney = (value, fmtFixed, fmtStr) => {
  const reg = /^(([1-9]\d*)|^\d*)(\.{0, 1}\d*)$/
  if (reg.test(value.toString())) return fmtStr.toString()
  if (isNaN(value) || !value) return fmtStr.toString()
  return Number(value).toFixed(Number(fmtFixed))
}

版权声明:本文为u011645165原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。