控制输入:
/**
* 实时动态强制更改用户录入
**/
function amount(th){
var regStrs = [
['^0(\\d+)$', '$1'], //禁止录入整数部分两位以上,但首位为0
['[^\\d\\.]+$', ''], //禁止录入任何非数字和点
['\\.(\\d?)\\.+', '.$1'], //禁止录入两个以上的点
['^(\\d+\\.\\d{2}).+', '$1'], //禁止录入小数点后两位以上
['^\d+(\.\d+)?$']
];
for(i=0; i<regStrs.length; i++){
var reg = new RegExp(regStrs[i][0]);
th.value = th.value.replace(reg, regStrs[i][1]);
}
}
function AmountInput()
{
//敲击按键时触发
$("#txtAmount").bind("keypress", function(event) {
amount(this);
//失去焦点是触发
$("#txtAmount").bind("blur", function(event) {
amount(this);
});
});
$("#txtAmount").bind("keyup", function(event) {
amount(this);
});
}
这样做控制了在PC上的输入,然而在手机上面输入22.25 然后将光标点到22中间并输入+ 变成2+2.25 此时金额就出现问题了!
然后需要判断一下金额
function <pre name="code" class="javascript">$('#txtAmount').bind('input propertychange', function() {
checkNum(xx)
});
checkNum(num){ var pattern = /^(([1-9]\d{0,9})|0)(\.\d{1,2})?$/; var cv1 = num.substring(num.length-1,num.length); if(cv1==".") { return false; } else { return pattern.test(num); }}