校验输入框输入两位小数
Posted michaelcnblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了校验输入框输入两位小数相关的知识,希望对你有一定的参考价值。
<script type="text/javascript">
/**
* 实时动态强制更改用户录入
* arg1 inputObject
**/
function amount(th){
var regStrs = [
[‘^0(\d+)$‘, ‘$1‘], //禁止录入整数部分两位以上,但首位为0
[‘[^\d\.]+$‘, ‘‘], //禁止录入任何非数字和点
[‘\.(\d?)\.+‘, ‘.$1‘], //禁止录入两个以上的点
[‘^(\d+\.\d{2}).+‘, ‘$1‘] //禁止录入小数点后两位以上
];
for(var i=0; i<regStrs.length; i++){
var reg = new RegExp(regStrs[i][0]);
th.value = th.value.replace(reg, regStrs[i][1]);
}
}
/**
* 录入完成后,输入模式失去焦点后对录入进行判断并强制更改,并对小数点进行0补全
* arg1 inputObject
**/
function overFormat(th){
var v = th.value;
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)){
v = v.replace(/^0+(d+.?d*).*$/, ‘$1‘);
v = inp.getRightPriceFormat(v).val;
}else if(/^0.d$/.test(v)){
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‘;
}
}
th.value = v;
}
</script>
以上是关于校验输入框输入两位小数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用JS通过正则限制input输入框只能输入整数,小数两位小数