方法一:
const change = (value) => {
// 去除除了数字和.以外字符
let val = value.replace(/[^\d.]/g, '')
const index = val.indexOf('.')
const includeNumber = /\d./g.test(val)
// 只保留第一个小数点
if (~index && includeNumber) {
val = val.replace(/\./g, '')
val = val.split('')
val.splice(index, 0, '.')
val = val.join('')
}
return val
}
方法二:
// js验证数字输入
function inputFloat(v){
// 值允许输入一个小数点和数字
v = v.replace(/[^\d.]/g,""); //先把非数字的都替换掉,除了数字和.
v = v.replace(/^\./g,""); //必须保证第一个为数字而不是.
v = v.replace(/\.{2,}/g,"."); //保证只有出现一个.而没有多个.
v = v.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
//保证.只出现一次,而不能出现两次以上
}