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 ...
随机推荐
- [转]CMake学习笔记(一)基本概念介绍、入门教程及CLion安装配置
原文链接:CMake学习笔记(一)基本概念介绍.入门教程及CLion安装配置
- 【记录】使用R2 CDN替换本地项目图片以加速图片加载
将图片存储到 Cloudflare 的存储桶中,并通过其提供的公共 URL 来替换代码中的本地路径,可以减小项目中打包的图片文件体积 实现方法的详细步骤: 1. 上传图片到 Cloudflare 的存 ...
- 让element的el-dialog居中显示
我发现element的弹窗偏上,有点不太美观,所以就让它居中显示,直接更改css样式就可以 /deep/.el-dialog__wrapper { text-align: center; white- ...
- TestProject 使用汇总
1. 截图 from addons.screenshot_utils import ScreenshotUtils step_output = driver.addons().execute( Scr ...
- .NetCore依赖注入(DI)之生命周期
在 .NET Core 中,依赖注入(Dependency Injection,DI)是一种实现控制反转(Inversion of Control,IoC)的技术,它通过将依赖对象注入到需要它们的对象 ...
- ASP6.0 (VB) 获取目录下所有图片文件
<% 'Desc : ASP6.0 (VB) 获取目录下所有图片文件 'by : wgscd 'date : 2024-2-1 dim c_path c_path=Server.MapPath( ...
- Python 潮流周刊#86:Jupyter Notebook 智能编码助手(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- Linux基础:用户与用户组
- 所生成项目的处理器架构“MSIL”与 “x86”不匹配
在 .net 生成时如果修改过某个类库的平台目标,那么通常会出现下面的警告: 之所以产生这个问题是因为类库的"平台目标"不统一,如果选择了 x86, 那么解决方案中所有的项目都应设 ...
- Winform-耗时操作导致界面渲染滞后
原因: 某些耗时操作阻塞了主线程. 理解上述原因,需先搞清楚Winform线程机制.主要有以下2点特性:1.单线程模型:2.依赖消息循环. 1.单线程模型 Winform 默认是单线程.通常,所有的U ...