1. 程式人生 > >格式化數字,小數點補全,金額輸入框校驗(小數點、補位等)

格式化數字,小數點補全,金額輸入框校驗(小數點、補位等)

在專案中,經常需要格式化數字,比如金額。下面這個方法實現了小數點後補全
格式化數字,小數點補全

function formatemoney(s, n) {
  /* s:要格式化的數字
   * n:保留幾位小數
   * */
  n = n > 0 && n <= 20 ? n : 2;
  s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
  var l = s.split(".")[0].split("").reverse(),
    r = s.split(".")[1
], t = ""; for (var i = 0; i < l.length; i++) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); } return t.split("").reverse().join("") + "." + r; }

輸入框校驗,實現首位不能是小數點,只能輸入一個小數點,小數點後最多隻能輸入2位等規則的校驗
輸入框(主要用於金額)規則校驗,限制使用者輸入
下面是在微信小程式中使用方法,其中maxlength是閒著輸入框最大長度

bindamountInput: function (e) {
    if (e.detail.value.charAt(0) == '.') {
      e.detail.value = '0.'
    }
    let v = e.detail.value;
    var regu = /^[0-9]+\.?[0-9]*$/;
    if (regu.test(v)) {
      if (v.indexOf('.') > -1) {
        if (v.split('.')[1].length == 2) {
          this.setData({
            maxLength: v.length
          })
        } else
{ this.setData({ maxLength: 6 }) } } } this.setData({ amount: e.detail.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') }) } } },