限制只能输入正整数、负整数和0
value .replace(/[^\d^\.^-]+/g, '') // 把不是数字,不是小数点的过滤掉 .replace(/[^\d^\-^-]+/g, '') // 把不是数字,不是负号-的过滤掉 .replace(/^0+(\d)/, '$1') // 以0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/^-0+(\d)/, '-$1') // 以-0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/-/g, (match: any, offset: number) => offset === 0 ? '-' : '') // 只允许第一个是负号- .replace(/\./, '#').replace(/\./, '').replace(/#/, '\.') // 只保留第一个小数点
参考链接:https://juejin.cn/post/7374343669207908361?searchId=20241011151026AFCF1166D360D117996D
限制只能输入正整数、负整数和0
<el-input clearable v-model.trim="form.errorCode" :placeholder="$t('info.pherrorCode')" :disabled="errorCode != undefined" @input="handleNumInput(form.errorCode)" />
handleNumInput(errorCode) { console.log(errorCode); errorCode = errorCode .replace(/[^\d^\-^-]+/g, '') // 把不是数字,不是小数点的过滤掉 .replace(/^0+(\d)/, '$1') // 以0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/^-0+(\d)/, '-$1') // 以-0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/-/g, (match, offset) => (offset === 0 ? '-' : '')); // 只允许第一个是负号- this.$set(this.form, 'errorCode', errorCode); },
11111限制只能输入正负数,0,小数
value = value .replace(/[^\d^\.^-]+/g, '') // eslint-disable-line // 把不是数字,不是小数点的过滤掉 .replace(/^0+(\d)/, '$1') // eslint-disable-line // 以0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/^-0+(\d)/, '-$1') // eslint-disable-line // 以-0开头,0后面为数字,则过滤掉,取后面的数字 .replace(/-/g, (match, offset) => (offset === 0 ? '-' : '')) // eslint-disable-line // 只允许第一个是负号- .replace(/\./, '#') .replace(/\./, '') .replace(/#/, '.') .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // eslint-disable-line // 小数点后只能输入两位 // 第一位不让输小数点 if (value == '.') { value = ''; }