vue输入框只能输入数字类型,禁止输入和粘贴e

js怎么去除1e里面e 

方法一:使用 Number() 函数将科学计数法表示的字符串转换为数字。然后,使用 toString() 方法将其转换回字符串形式,这样就会自动移除科学计数法中的 "e"

var num = 1e10; // 科学计数法表示的数字
var numStr = Number(num).toString(); // 转换为字符串,自动移除 "e"
console.log(numStr); // 输出 "10000000000"

方法二:使用正则表达式替换方法移除科学计数法中的 "e"。

 var num = 1e10; // 科学计数法表示的数字

var numStr = num.toString().replace("e", ""); // 使用 replace 方法替换 "e" 为空字符串 console.log(numStr); // 输出 "10000000000"

vue中限制长度以及数字(包括e) 

// 封装方法--只允许输入正数包 
export function getNum(val) { 
  // 先把非数字的都替换掉,除了数字 
  val = Number(val).toString().replace(/[^\d]/g, '') 
  return val 
}

  οnkeydοwn="return event.keyCode !== 69"
  @input="changeNumber('height',ruleForm.height,8)"
/>
changeNumber(name, obj, len = 8) {
  const t = obj.length > len ? obj.slice(0, len) : obj
  this.$set(this.ruleForm, name, getNum(t))
}

vue中自动保存两位小数 

// 封装方法--只允许输入数字包含小数点
export function getFloorNumber(val, saveNumber = 2) {
  // 先把非数字的都替换掉,除了数字
  val = val.replace(/[^\d.]/g, '')
  val = val.replace(/\.{2,}/g, '.')
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  const index = val.indexOf('.')
  if (index != -1) {
    const arr = val.split('.')
    if (arr[1].length > saveNumber) {
      arr[1] = arr[1].substr(0, saveNumber)
    }
    val = arr.join('.')
  }
  return val
}
@input="changeSpliceArea('area')"
  @blur="changeArea('area')"
/>
changeSpliceArea(name, len = 8) {
  this.ruleForm[name] = getFloorNumber(this.ruleForm[name])
  if (this.ruleForm[name].length >= len) {
    this.ruleForm[name] = this.ruleForm[name].substr(0, len)
  }
},
changeArea(name) {
  const t = this.ruleForm[name] && this.ruleForm[name].charAt(this.ruleForm[name].length - 1)
  if (t == '.') {
    this.ruleForm[name] += '00'
  }
}

常用工具方法

// 只允许输入数字包含负数
export function getNumber(val) {
  const t = val.charAt(0)
  // 先把非数字的都替换掉,除了数字
  val = val.replace(/[^\d]/g, '')
  // 如果第一位是负号,则允许添加
  if (t === '-') {
    val = '-' + val
  }
  return val
}

// 只允许输入正数包
export function getNum(val) {
  // 先把非数字的都替换掉,除了数字
  val = Number(val).toString().replace(/[^\d]/g, '')
  return val
}

// 只允许输入数字包含小数点
export function getFloorNumber(val, saveNumber = 2) {
  // 先把非数字的都替换掉,除了数字
  val = val.replace(/[^\d.]/g, '')
  val = val.replace(/\.{2,}/g, '.')
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  const index = val.indexOf('.')
  if (index != -1) {
    const arr = val.split('.')
    if (arr[1].length > saveNumber) {
      arr[1] = arr[1].substr(0, saveNumber)
    }
    val = arr.join('.')
  }
  return val
}
// 只允许输入数字包含小数,不限制长度
export function getFloorNumNoLength(val) {
  const t = val.charAt(0)
  if (t === '.') {
    return val.replace('.', '')
  }
  val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  // 先把非数字的都替换掉,除了数字
  val = val.replace(/[^\d.]/g, '')
  return val
}

你可能感兴趣的:(vue.js,javascript,前端)