小数输入验证规则,只能一个小数点,可以输入负数等

const onlyNumber = (num) => {
  var n = String(num);
  var t = n.charAt(0);
  // 先把非数字的都替换掉,除了数字和.
  n = n.replace(/[^\d\.]/g, '');
  // 必须保证第一个为数字而不是.
  n = n.replace(/^\./g, '');
  // 保证只有出现一个.而没有多个.
  n = n.replace(/\.{2,}/g, '.');
  // 保证.只出现一次,而不能出现两次以上
  n = n.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
  // 如果第一位是负号,则允许添加
  if (t === '-') {
    n = '-' + n;
  }
  return n;
};

 

posted @ 2024-01-31 10:11  haha-uu  阅读(23)  评论(0编辑  收藏  举报