1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!doctype html>  
<html>  
<head>  
<meta charset="utf-8">  
<title>JS限制文本框输入金额并保留两位小数</title>  
<script type="text/javascript">   
/**  
* 实时动态强制更改用户录入
**/  
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补全 
**/  
function overFormat(th){  
    var v = th.value;  
    if(=== ''){  
        v = '0.00';  
    }else if(=== '0'){  
        v = '0.00';  
    }else if(=== '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>  
</head>  
<body>  
<input type="text" name="city" value="" onkeyup="amount(this)" onblur="overFormat(this)" />  
</body>  
</html>