限制文本框的输入,现有的代码如下: var record = { num: "" };
var checkDecimal = function (n) {
var decimalReg = /^\d{0,6}\.{0,1}(\d{1,2})?$/;
if (n.value != "" && decimalReg.test(n.value)) {
record.num = n.value;
}
else {
if (n.value != "") {
n.value = record.num;
}
}
}
现在的这个正则表达式可以输入八位数字,或者有两位小数的六位数字。
我想要的效果是:只能输入6位数字,或者有两位小数的六位数字。如果第七位不是‘.’,那么就不能继续输入了。
求高手帮忙改下正则表达式~谢谢了。
var checkDecimal = function (n) {
var decimalReg = /^\d{0,6}\.{0,1}(\d{1,2})?$/;
if (n.value != "" && decimalReg.test(n.value)) {
record.num = n.value;
}
else {
if (n.value != "") {
n.value = record.num;
}
}
}
现在的这个正则表达式可以输入八位数字,或者有两位小数的六位数字。
我想要的效果是:只能输入6位数字,或者有两位小数的六位数字。如果第七位不是‘.’,那么就不能继续输入了。
求高手帮忙改下正则表达式~谢谢了。
最后还是觉得这样比较好,\d{6}的话,输入一个数字就死活输不了。如果(\.\d{0,2})?中的用\d{2},那就没法输入一位小数,\d{1,2}除非同时输入点和数字,不然点和数字都输入不了。
虽然这样可能会有输入六位数加一个点的情况,但是可以麻烦点在后台获取文本框值的时候判断最后一位是不是点,是的话直接截取不要。