平常我们在项目中,前端页面常常需要使用input输入金额,页面需要对用户输入的金额进行限制,不能输入除数字和小数点以外的字符:
<td><input type="number" value="400.00" onchange="moneyDistinct();"/></td>
<script type="text/javascript">
function moneyDistinct(){
var v = $("input").val();
if(v === ''){
v = '0.00';
}else if(v === '0'){
v = '0.00';
}else if(v === '0.'){
v = '0.00';
}else if(/^0+\d+\.?\d*.*$/.test(v)){//禁止出现01,02的情况
v = v.replace(/^0+(\d+\.?\d*).*$/, '$1');
//v = inp.getRightPriceFormat(v).val;
}else if(/^0\.\d$/.test(v)){//0.1---》0.10
v = v + '0';
}else if(!/^\d+\.\d{2}$/.test(v)){
if(/^\d+\.\d{2}.+/.test(v)){
v = v.replace(/^(\d+\.\d{2}).*$/, '$1');
}else if(/^\d+$/.test(v)){
v = v + '.00';
}else if(/^\d+\.$/.test(v)){
v = v + '00';
}else if(/^\d+\.\d$/.test(v)){
v = v + '0';
}else if(/^[^\d]+\d+\.?\d*$/.test(v)){
v = v.replace(/^[^\d]+(\d+\.?\d*)$/, '$1');
}else if(/\d+/.test(v)){
v = v.replace(/^[^\d]*(\d+\.?\d*).*$/, '$1');
ty = false;
}else if(/^0+\d+\.?\d*$/.test(v)){
v = v.replace(/^0+(\d+\.?\d*)$/, '$1');
ty = false;
}else{
v = '0.00';
}
}
$("input").val(v);
}
</script>