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 ...
随机推荐
- opencv只在bin目录下编译dll,在lib目录下编译lib,在bin目录下不编译测试程序的各种exe
penCV是一个开源的计算机视觉库,它提供了多种编程语言的接口.如果你只想编译出DLL和Lib库文件,而不编译EXE(可执行文件),这通常是因为你想要进行某种形式的动态链接或者库的分发,而不关心EXE ...
- 基于C#实现串口通信Demo
原文链接:基于C#实现串口通信Demo
- Windows 配置自动更新重启策略
I. 打开策略编辑器 [Win + R]打开 "运行" 窗口,输入: gpedit.msc 打开"本地组策略编辑器". II. 设置不自动重启 启用策略,选择在 ...
- Note -「广义二项级数」浅赏
上回 说到拉反和扩展拉反,那么这里先给几个小小变形或推广. 基础 ver: \[\begin{align} [x^n]G(x) &= \frac{1}{n}[x^{n-1}](F(x) ...
- VS2022推送代码 到github错误: CertGetCertificateChain trust error CERT_TRUST_IS_PARTIAL_CHAIN的解决办法
VS2022推送代码 到github错误: CertGetCertificateChain trust error CERT_TRUST_IS_PARTIAL_CHAIN 解决办法: 进入到 选项&g ...
- Nginx-总结列表
Nginx配置详解 Nginx实现前后端分离,反向代理.负载均衡 Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 .它支持内核 Poll 模型,能经受高负载的考验,有报告表明 ...
- MySQL为Null导致的四大坑
"兵马未动粮草先行",看完了相关的配置之后,我们先来创建一张测试表和一些测试数据. -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; ...
- 将Mybatis引入Spring Boot项目连接数据库操作
将Mybatis引入Spring Boot项目连接数据库操作 一,首先,在pom.xml引入Mybatis插件 加入Maven依赖代码即可快速引入Mybatis 2.0.0: <!--Mybat ...
- LeetCode刷题:AddressSanitizer: heap-buffer-overflow问题请教||全局变量和引用传递的区别
在刷 https://leetcode.cn/problems/sudoku-solver/description/ 遇到AddressSanitizer: heap-buffer-overflow的 ...
- Rocksdb原理简介
本文分享自天翼云开发者社区<Rocksdb原理简介>,作者:l****n Rocksdb作为当下nosql中性能的代表被各个存储组件(mysql.tikv.pmdk.bluestore)作 ...