需求:
1. 最小0.01
2. 最大99999.99
3. 保留2位小数点
一:
if (!(/(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/.test(row.tempPirce)) || row.tempPirce > 99999.99 || Number(row.tempPirce) === 0) return this.$Message.error(this.$t('请输入不超过99999.99的金额,不可为0'))
这里转了一下Number。。。 因为用的===, 输入的价格是string
二:
function fn(num) { let reg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/ if (reg.test(num) && (num > 99999.99 || num == 0)) { console.error('不符合区间') } if (!reg.test(num)) { console.error('num最多两位小数') } }
大同小异
正则限制输入为数字,且最多输入2位小数
//检查输入文本,限制只能为数字并且数字最多带2位小数 checkInputText: function(text){ var reg = /^(\.*)(\d+)(\.?)(\d{0,2}).*$/g; if (reg.test(text)) { //正则匹配通过,提取有效文本 text = text.replace(reg, '$2$3$4').replace(/^0+/, '0'); } else { //正则匹配不通过,直接清空 text = ''; } return text; //返回符合要求的文本(为数字且最多有带2位小数) }