input限制只能输入数字或者小数

1,116 阅读1分钟

input 输入格式化

   
/**
     * @description:  限制只能输入整数 | 小数
     * @param {*} e 事件对象
     * @param {*} type 数字类型
     * @return {*}
     */
    changeInput(e, type) {
      let val = e.target.value
      const t = val.charAt(0)
      if (type === 'int') {
        // 限制只能输入数字
        val = val.replace(/[^\d+]/g, '')
      } else {
        // 先把非数字的都替换掉,除了数字和.
        val = val.replace(/[^\d.]/g, '')
        // 保证只有出现一个.而没有多个.
        val = val.replace(/\.{2,}/g, '.')
        // 必须保证第一个为数字而不是.
        val = val.replace(/^\./g, '')
        // 保证.只出现一次,而不能出现两次以上
        val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
      }
      // 负数处理
      if (t === '-') {
        e.target.value = '-' + val
      } else {
        e.target.value = val
      }
    },