element-ui和ant-design-vue 数字输入框只能输入大于等于1的整数
限制输入的是大于等于1的整数
<template>
<div>
<h1>ant-design-vue 1.xx</h1>
<a-input-number
id="inputNumber"
v-model="value2"
:min="1"
:max="9007199254740991"
:precision="0"
class="set-width"
@change="onChange"
/>
</div>
</template>
<script>
export default {
data() {
return {
value2: 3,
};
},
methods: {
onChange(value) {
console.log("changed", value);
},
},
};
</script>
<style scoped lang="less">
.set-width {
width: 200px;
}
</style>
precision的作用
precision 数值精度 number类型
:precision="0",强制输入为整数(不允许小数)
为啥需要限制最大值
JavaScript 的 Number 类型最大安全整数为 2^53 - 1(既 9007199254740991 )。是一个16位数。
如果超出的话,会出现 Infinity。

使用formatter和 parser 来做限制输入的是大于等于1的整数
<template>
<div>
<h1>比如"12-34.56"会变成"123456"。</h1>
<h1>ant-design-vue 1.xx</h1>
<a-input-number
id="inputNumber"
v-model="value2"
:min="1"
:max="9007199254740991"
:formatter="formatter"
:parser="parser"
class="set-width"
@change="onChange"
/>
</div>
</template>
<script>
export default {
data() {
return {
value2: 3,
};
},
methods: {
// 格式化显示(禁止显示小数和非整数)
formatter(value) {
return `${value}`.replace(/[^\d]/g, ""); // 强制去除所有非数字字符
},
parser(value) {
// 去除非数字字符(如字母、符号)
// 这里使用 parser,当我们复制ctrl-c-v “abc123.45-”的时候,会变成 12345
// 如果不使用 parser,我们复制ctrl-c-v “abc123.45-”的时候,会变成空字符 ""
const parsedValue = value.toString().replace(/[^\d]/g, "");
return parsedValue;
},
onChange(value) {
console.log("changed", value);
},
},
};
</script>
正则的详细说明replace(/[^\d]/g, "");
\d在正则表达式中通常代表数字,即0-9。
[^\d]匹配任何非数字的字符。加上g修饰符,意味着替换所有匹配的非数字字符。
也就是说:[^\d]匹配的就是除了0-9之外的任何字符。
replace方法将这些匹配到的非数字字符替换为空字符串,也就是删除非数字的字符。
例如,如果value是"abc123.45-",替换后的结果就是"12345"。
- 方括号[]:表示一个字符类,匹配其中任何一个字符。
- ^符号:在字符类的开头使用,表示否定,即匹配不在该字符类中的任何字符。
- \d:代表数字字符,等价于[0-9]。
- /g修饰符:全局匹配,替换所有出现的地方,而不仅仅是第一个。
所以组合起来,[^\d]匹配任何不是数字的字符,替换为空字符串即,删除掉非数字的字符,最终得到纯数字的字符串。
/[^\d]/g 和/^\d/g的区别
[^\d]:用于匹配所有非数字内容。
^\d:用于检查字符串是否以数字开头。
"1a2b3c".replace(/^\d/g, "") // 输出 "a2b3c"(开头数字1被替换)
"a1b2c3".replace(/^\d/g, "") // 输出不变(开头无数字)
elementui 输入框只能输入大于等于1的整数
<template>
<div class="set-number">
<!-- controls 是否使用 + - 控制按钮-->
<!-- precision 精确度 number类型,:precision="0" 表示输入整数-->
<el-input-number v-model="num" controls-position="right" :controls="false"
:precision="0" :min="1" :max="9007199254740991">
</el-input-number>
</div>
</template>
<script>
export default {
data() {
return {
num: 1
};
},
methods: {
handleChange(value) {
console.log(value);
}
}
};
</script>

element-ui和ant-design-vue 数字输入框只能输入大于等于1的整数的更多相关文章
- vue中输入框只能输入数字
方案1:增加自定义指令 自定义指令写法: directives: { numberOnly: { bind(el) { ...
- ant design vue 时间选择器只能到最大日期
<a-date-picker :disabledDate="disabledEndDate" style="width: 100%" placehold ...
- Vue限制输入框只能输入整数
首先,得明确监听input输入框变化的方法是input,不是change. 方案一:type= "number" 作用: 成功禁止输入字母 能输入小数点,第一位可以为0,小数点能输 ...
- 【前端】input输入框只能输入大于等于0的正数
大于等于0的正数,允许小数 <input type="number" step="1" min="0" onkeyup="t ...
- 基于Ant Design Vue封装一个表单控件
开源代码 https://github.com/naturefwvue/nf-vue3-ant 有缺点本来是写在最后的,但是博文写的似乎有点太长了,估计大家没时间往下看,于是就把有缺点写在前面了,不喜 ...
- Vue3学习(二)之集成Ant Design Vue
一.集成Ant Design Vue npm install ant-design-vue@2.0.0-rc.3 --save 兼容性 Ant Design Vue 2.x 支持所有的现代浏览器. 如 ...
- Ant Design Vue Pro 项目实战-项目初始化(一)
写在前面 时间真快,转眼又是新的一年.随着前后端技术的不断更新迭代,尤其是前端,在目前前后端分离开发模式这样的一个大环境下,交互性.兼容性等传统的开发模式已经显得有些吃力.之前一直用的是react,随 ...
- Ant Design Vue select下拉列表设置默认值
在项目中需要为Ant Design Vue 的 select 组件设置一个默认值,如下图所示的状态下拉选择框,默认选择全部 代码如下: <a-select v-model="query ...
- 使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换
使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换 需求: 日历区分交易日.非交易日 可以切换面板查看整年交易日信息 可以在手动调整交易日.非交易日 演示实例 序--使用软 ...
- 使用npm安装 Ant Design Vue 时报错—ant-design-vue@latest(sha1-qsf / gCIFcRYxyGmOKgx7TmHf1z4 =)seems to be corrupted.
安装 Ant Design Vue 时报错: npm install ant-design-vue --save ant-design-vue @ latest(sha1-qsf / gCIFcRYx ...
随机推荐
- TensorRT-YOLO:灵活易用的 YOLO 部署工具
TensorRT YOLO TensorRT-YOLO 是一款专为 NVIDIA 设备设计的易用灵活.极致高效的YOLO系列推理部署工具.项目不仅集成了 TensorRT 插件以增强后处理效果,还使用 ...
- [转]java调用python脚本以及通过Process.waitFor()直接调用python模块返回错误代码1的一种解决办法
常见的java调用python脚本方式 通过jython提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 通过jython提供的类库实现 通过jython实现的话,我 ...
- 基于NVIDIA NGC容器安装使用PaddlePaddle
基于NVIDIA NGC容器安装使用PaddlePaddle PaddlePaddle PaddlePaddle作为国内首个自主研发的深度学习平台,自2016年正式向专业社区开源,是一个技术先进.功能 ...
- CF1763C Another Array Problem
人类智慧题.harmis_yz 不会. 题意 \(\tt{Link}\) 给定一个序列 \(\{a_n\}\),可以进行若干次操作,每次可以选择 \(i,j(1 \le i < j \le n) ...
- [LC952]按公因数计算最大组件大小
题目描述 给定一个由不同正整数的组成的非空数组 nums ,考虑下面的图: 有 nums.length 个节点,按从 nums[0] 到 nums[nums.length - 1] 标记: 只有当 n ...
- idea启动项目(本地jar包)的配置
一. nohup java -jar jarName-0.0.1-SNAPSHOT.jar >msg.log 2>&1 &; java -Xms256m -Xmx512m ...
- HBase的Memstore-schema-rowkey设计原则
schema设计原则 前提条件 使用HBase Shell或者Java API的HBaseAdmin来创建和编辑HBase的Schema,当修改列簇时,建议先将这张表下线. Configurati ...
- nginx平台初探-5
nginx的请求处理阶段 (90%) 接收请求流程 (99%) http请求格式简介 (99%) 首先介绍一下rfc2616中定义的http请求基本格式: Request = Reques ...
- Exfiltrated pg walkthrough Easy
80端口弱口令admin admin 发现cms 搜索exp 发现漏洞 https://www.exploit-db.com/exploits/49876 找到敏感数据库密码和用户 ╔════════ ...
- Brainfly: 用 C# 类型系统构建 Brainfuck 编译器
Brainfuck 简介 Brainfuck 是由 Urban Müller 在 1993 年创造的一门非常精简的图灵完备的编程语言. 正所谓大道至简,这门编程语言简单到语法只有 8 个字符,每一个字 ...