<el-input
style="width:100%"
v-model.trim="form.assessPrice"
placeholder="请输入整数"
class="ainput"
size="mini"
maxlength="10"
@focus="uninputMoney($event)"
@blur="inputMoney($event)"
>
inputMoney (el) {
const reg = /^[1-9][0-9]*$/g
if (!reg.test(el.target.value)) {
return this.$message.error('请输入正整数')
}
let temp = Number(el.target.value) || null
this.form.assessPrice = this.priceFormat(temp, 0)
},
// 获得焦点金额去掉格式
uninputMoney (el) {
if (el.target.value) {
this.form.assessPrice = this.delcommafy(el.target.value)
} else {
this.form.assessPrice = ''
}
},
priceFormat (num, n) {
n = n || 0
let symbol = ','
if (num === null) return num
if (typeof num !== 'number') {
throw new TypeError('num参数应该是一个number类型')
}
let hasDot = parseInt(num) !== num // 这里检测num是否为小数,true表示小数
let m = n !== undefined && n !== null ? n : 1
num =
m === 0
? num.toFixed(m) + '.'
: hasDot
? n
? num.toFixed(n)
: num
: num.toFixed(m)
symbol = symbol || ','
num = num
.toString()
.replace(/(\d)(?=(\d{3})+\.)/g, function (match, p1, p2) {
return p1 + symbol
})
if (n === 0 || (!hasDot && !n)) {
// 如果n为0或者传入的num是整数并且没有指定整数的保留位数,则去掉前面操作中的小数位
num = num.substring(0, num.indexOf('.'))
}
return num
},
// 去除千分位中的‘,’
delcommafy (num) {
if (!num) return num
num = num.toString()
num = num.replace(/,/gi, '')
if (num.indexOf('.00') > 0) num = parseInt(num)
return num
},
浙公网安备 33010602011771号