过滤输入框最大值和最小值

 注意如果想禁止最小值为0的情况,仅仅这样是不够的,因为客户可以输入10 然后删除前面的1
import android.text.InputFilter;
import android.text.Spanned;

public class InputFilterMinMax implements InputFilter {

	private int min, max;

	public InputFilterMinMax(int min, int max) {
		this.min = min;
		this.max = max;
	}

	@Override
	public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
		try {
			int input = Integer.parseInt(dest.toString() + source.toString());
			if (isInRange(min, max, input))
				return null;
		} catch (NumberFormatException nfe) {
		}
		return "";
	}

	private boolean isInRange(int a, int b, int c) {
		return b > a ? c >= a && c <= b : c >= b && c <= a;
	}
}



EditText.setFilters(new InputFilter[]{new InputFilterMinMax(1, 999)});


### ElementUI 数值范围输入框组件使用教程 #### 创建数值范围输入框 为了实现一个能够有效控制数值范围的输入框,在ElementUI中可以利用`<el-input-number>`组件。此组件自带对最小值最大值的支持,从而解决了手动输入超出指定范围的问题。 ```html <template> <div class="demo"> <!-- 定义带有minmax属性的数字输入框 --> <el-input-number v-model="num" :min="1" :max="10"></el-input-number> </div> </template> <script> export default { data() { return { num: 1, }; }, }; </script> ``` 上述代码展示了如何配置`<el-input-number>`以限定用户只能输入介于1到10之间的整数[^1]。 对于更复杂的场景,比如需要严格限制输入长度并阻止特殊字符(如'e'、'+'、'-'),可以在`oninput`事件处理器内加入自定义验证逻辑: ```html <template> <div class="demo"> <!-- 添加oninput事件监听器防止非法字符输入 --> <el-input type="number" v-model.number="num" @input="handleInput" min="1" max="9999999999" oninput="if(value.includes('e')||value.includes('+')||value.includes('-')) value=''; if(value.length>10)value=value.slice(0,10)"> </el-input> </div> </template> <script> export default { methods: { handleInput(event) { let val = event.target.value; // 移除所有非数字字符 this.num = parseInt(val.replace(/[^\d]/g,''), 10); } }, data() { return { num: '', }; }, }; </script> ``` 这段代码不仅设置了`min``max`属性来约束可接受的数值区间,还通过JavaScript正则表达式过滤掉了任何不符合预期格式的数据,并且确保了即使用户尝试绕过浏览器内置控件也能维持数据的有效性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值