input 设置为text,number类型能输入负值和 ‘e’
export const getNumber = (val,oldval, l) => { //val新值,oldval旧值,l,小数点后面保留的位数
var reg2 = /^\d+(\.\d{0,2})?$/
let mum = val
let nmb = l + 1
if (!reg2.test(val)) {
mum = parseFloat(val)
}
if (val[0] === '0' && val[1] !== '.' && val.toString().length > 1) {
mum = val.replace(/^0+/, '')
}
if (val[0] === '0' && val[1] === '0' && val.toString().length > 1) {
mum = 0
}
let i = val.toString().indexOf('.')
if (val.toString().indexOf('.') > 0 && val.toString().length > (val.toString().indexOf('.') + 2)) {
mum = val.toString().substring(0, i + nmb)
}
if (isNaN(val)) {
mum = oldval
}
if (val === '' || val == null) {
mum = ''
}
return mum
}
- 这种小数点后面没数字的 需要在失去焦点的时候提示用户,或者给input绑定一个失去焦点触发的方法,如果失去焦点最后一个是小数点的话就去掉小数点
遇见问题,留作参考