正则表达式验证输入框的内容
// 单价 只能输入数字和小数点,且必须数字开头并大于或者等于1,限制最多三位小数,小数点为最后一位时,失去焦点时自动截掉
<input type="text" value="" name="price" onkeyup="ValidateNum1(this)" onblur="toDecimal(this)" placeholder="请输入单价" maxlength="8"/>
// 数量 只能输入正整数
<input type="text" class="set_val" name="money" id="" onkeyup="ValidateNum3(this)" placeholder="请输入数量" maxlength="7"/>
// 总价 只能输入数字和小数点,且必须数字开头并大于或者等于1,限制最多两位小数,小数点为最后一位时或者输入的为正整数时,失去焦点时自动补两位小数
<input type="text" class="set_val" name="totalMoney" id="" onkeyup="ValidateNum2(this)" onblur="toDecimal2(this)" maxlength="5" placeholder="请输入总价" />
// 验证输入内容是否合法
function ValidateNum1(obj) {
obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/^0/g,""); //验证第一个字符是数字而不是0
obj.value = obj.value.replace(/^0+$/g,"");//若以0开头且连续键入多个0时,替换空
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3'); //只能输入三个小数
}
function ValidateNum2(obj) {
obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'); //只能输入两个小数
}
function ValidateNum3(obj) {
obj.value = obj.value.replace(/[^\d]/g,""); //清除"数字"以外的字符
obj.value = obj.value.replace(/^0/g,""); //验证第一个字符是数字而不是0 最低赔率只能为1
obj.value = obj.value.replace(/^0+$/g,"0");//若以0开头且连续键入多个0时,只保留一个0
}
function toDecimal(obj){
var f = parseFloat(obj.value);
if (isNaN(f)) {
return false;
}
obj.value = f;
}
// 退水自动补足小数点后两位
function toDecimal2(obj){
var f = parseFloat(obj.value);
if (isNaN(f)) {
return false;
}
var s = f.toString();
var rs = s.indexOf('.');
if (rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + 2) {
s += '0';
}
obj.value = s;
}