当前位置: 首页 > article >正文

输入百分比校验(数字非负数保留2位不四舍五入)

场景用于输入百分比,限制只能输入非负数,保留2位小数,且不四舍五入

以下举例环境 vue2 + element-ui
请自行根据实际场景使用

html部分

<el-input
  v-model="item.percentage"
  placeholder="请输入"
  maxlength="5"
  @input="amountInput(item, 'percentage')"
>

js部分

amountInput(params, key) {
	// 清除"数字"和"."以外的字符
	const value = params[key].replace(/[^\d.]/g, '');
	params[key] = value;
	
	// 去除首个.
	if (value.length > 1 && ['.'].includes(value.substr(0, 1))) {
	  // console.log('==match:', value);
	  params[key] = value.substr(1);
	}
	
	// 保留2位不四舍五入
	if (value.length > 4 && value.indexOf('.') !== -1) {
	
	  console.log('==拼装=>', value.split('.')[0], value.split('.')[1].substring(0, 2));
	  params[key] = value.split('.')[0] + '.' + value.split('.')[1].substring(0, 2);
	}
	// 如果输入的数字前三位等于100 则不能输入第四位数字
	if (value.length >= 3 && value.indexOf('.') === -1 && value.substring(0, 3) == '100') {
	  params[key] = value.substring(0, 3);
	  return
	}
	
	// 最大输入100 如果输入的数字大于等于100则第三位不能在输入
	if (value.length >= 3 && value.indexOf('.') === -1 && value > 100) {
	  params[key] = value.substring(0, 2);
	}
	// 开头不能输入多个0
	if (value.length >= 2 && value.substring(0, 1) == '0' && value.substring(1, 2) != '.') {
	  params[key] = '0';
	}
	// 如果开头是一个.直接清空
	if (params[key] == '.') {
	  params[key] = '';
	}
	// 不能输入多个.
	if (value.split('.').length > 2) {
	  params[key] = value.split('.')[0] + '.' + value.split('.')[1];
	}
}

http://www.kler.cn/a/611957.html

相关文章:

  • c# 动态库重名冲突处理方法 (起别名)
  • 面试记录3
  • 深度学习查漏补缺:3.从 Sigmoid 到 GELU
  • 使用Hash和HTML5的History API实现前端路由
  • IIR(无限冲激响应)滤波
  • 爬虫面试题
  • 大模型tokenizer重构流程
  • 【初探数据结构】直接插入排序与希尔排序详解
  • 解决conda的R包安装的依赖问题-以tidyverse为例
  • UniApp 生命周期钩子的应用场景
  • 20250327解决在立创eda中铺了GND的铜之后仍显示部分地线未连接
  • 关于大模型中的Token概念小记
  • 江西核威环保科技:打造世界前沿的固液分离设备高新企业
  • browser-use 库安装指南
  • 【MyBatisPlus】MyBatisPlus介绍与使用
  • 什么是logback FixedWindowRollingPolicy的文件滚动策略?
  • 知识就是力量——物联网应用技术
  • Neo4j GDS-06-neo4j GDS 库中社区检测算法介绍
  • Matlab Hessian矩阵计算(LoG算子)
  • 从零开始跑通3DGS教程:介绍