js处理金额

举例 一

转换前:123456789.87654321
转换后:123,456,789.88
    fmoney(s, n) {
      n = n > 0 && n <= 20 ? n : 2;
      s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
      let l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];
      let t = "";
      for (let i = 0; i < l.length; i++) {
        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
      }
      return t.split("").reverse().join("") + "." + r;
    }

举例二 比如 00001,打印 = 1 || 00002.1 打印 = 2.1

/**
		 * @description: 去除数字0开头 比如 00001,打印 = 1  ||  00002.1 打印 = 2.1
		 * @param {Stirng} val
		 * @return {String} 处理之后的数据
		 */		
				handleClearNumberBeginsWithZero(val) {
      if (val) {
        let beforeVal,
            num = 0,
            arr = [],
            newVal = 0
        if (val.indexOf('.') !== -1) {
          arr = val.split('.')
          beforeVal = arr[0]
					if (beforeVal.length === 1) {
						return val
					}
        } else {
          beforeVal = val
        }
        for (let i = 0; i < beforeVal.length; i++) {
					if ( i === 0 && beforeVal[i] !== '0') {
						return val
					}
          if (beforeVal[i] === '0') {
            num += 1
          }
        }
        if (num > 1) {
          if (arr && arr.length > 0) {
            newVal = beforeVal.slice(num - 1) + '.' + arr[1]
          } else {
            newVal = beforeVal.slice(num)
          }
        } else {
					newVal = beforeVal
				}
				return newVal
      }
    },

猜你喜欢

转载自blog.csdn.net/qq_43631129/article/details/131310142