
直接上代码:
var vm= new Vue({
el: '#repeat',
data: {
value1:''
}
})
vm.$watch('value1',function (newvalue,oldvalue) {
newvalue_=(newvalue.indexOf('.00')>0)?newvalue.replace('.00' ,''):newvalue; //禁止ie8,9自动添加.00的小数点
if( (isNaN(parseFloat(newvalue_.replace(/,/ig,'')))) ){ //如果当前输入的不是数字就停止执行
this.value1=''; //防止不是数字是input出现NaN提示
return false;
}
if( /\./i.test(newvalue_) ){ //判断处理含有.的情况下
if(/\.\d\d\d$/.test(newvalue_)){
this.value1=oldvalue; //限制只能输入2位小数点
}else{
this.value1=newvalue_.replace(/[^\d\.\,]/ig,'') //开始输入小数点之后,只能输入数字
}
}else{
this.value1=((parseFloat(newvalue_.replace(/,/ig,'')).toLocaleString()).toString()).replace('.00' ,'');
}
})
<div id="repeat">
<input type="text" v-model="value1" placeholder="哈哈">
</div>