1. input过滤小数点后2位

  1. <el-input
  2. type="number"
  3. v-model="form.zs"
  4. placeholder="著作总字数(保留两位小数)"
  5. clearable style="width:300px;"
  6. @keyup.native="form.zs = oninput(form.zs)"
  7. >
  8. oninput(val) {
  9. return val ? val.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') : null
  10. }

2. 限制输入

  1. <input v-model="license_num" type="text" :change="check_num()" placeholder="请输入">
  2. // 限制只能输入数字,英文
  3. check_num() {
  4. this.license_num = this.license_num.replace(/[^\a-\z\A-\Z0-9]/g, '')
  5. }
  6. // 限制只能输入正整数
  7. check_num() {
  8. var license_num = this.license_num;
  9. license_num = license_num.replace(/[^\d]/g, '') // 清除“数字”和“.”以外的字符
  10. if (license_num.indexOf('.') < 0 && license_num != '') {
  11. // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
  12. license_num = parseInt(license_num)
  13. }
  14. this.license_num = license_num
  15. }
  16. // 限制价格只能输入数字,且最多两个小数
  17. check_price() {
  18. var price = '' + this.price;
  19. price = price
  20. .replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
  21. .replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
  22. .replace('.', '$#$')
  23. .replace(/\./g, '')
  24. .replace('$#$', '.')
  25. .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // 只能输入两个小数
  26. if (price.indexOf('.') < 0 && price != '') {
  27. // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
  28. price = parseFloat(price);
  29. }
  30. this.price = price;
  31. }