html部分
<input type="text" v-model="val" @input="sBind($event)" @blur="aBind($event)" />
事件部分
aBind(ev){
//为了去除最后一个.
this.val = this.val.replace(/\.$/g, "");
},
sBind(ev) {
var value = ev.target.value;
value = value.replace(/,/g, "")
//先把非数字的都替换掉,除了数字和. -
value = value.replace(/[^\d.-]/g, "");
//必须保证第一个为数字而不是.
value = value.replace(/^\./g, "");
//保证只有出现一个.而没有多个.
value = value.replace(/\.{2,}/g, ".");
//保证.只出现一次,而不能出现两次以上
value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
//如果第一位是负号,则允许添加 如果不允许添加负号 可以把这块注释掉
if (value.indexOf("-") === 0) {
value = value.replace(/-/g, "");
value ="-"+value
}else{
value = value.replace(/-/g, "");
}
if(value.indexOf(".")!=-1){
var arr = value.split('.')
console.log("有小数点",arr[0]-0)
var str = (arr[0]-0).toLocaleString()
this.val = str + "." + arr[1]
}else{
console.log("没有小数点")
this.val = (value-0).toLocaleString()
}
// if(value.indexOf(".")!=-1){
// var arr = value.split('.')
// console.log("有小数点",arr)
// var str = arr[0].split('').reverse().join('')
// str = str.replace(/(\d{3})(?=\d)/g, '$1,')
// str = str.split('').reverse().join('')
// this.val = str + "." + arr[1]
// }else{
// console.log("没有小数点")
// var str = value.split('').reverse().join('')
// str = str.replace(/(\d{3})(?=\d)/g, '$1,')
// str = str.split('').reverse().join('')
// this.val = str
// }
},