我有以下jQuery代码,它允许我只在文本框中输入数字:
$('.numbersOnly').keyup(function () {
if (this.value != this.value.replace(/[^0-9\.]/g, '')) {
this.value = this.value.replace(/[^0-9\.]/g, '');
}
});
我希望为此添加一些额外的验证,以允许范围为0到10和三个小数位。这是我应该使用的代码的正确形式吗?
$('.numbersOnly').keyup(function () {
if (this.value != this.value.replace(/[^([0-9]|1[0])\.(0[0-9][0-9]|1[0][0])$]/g, '')) {
this.value = this.value.replace(/[^0-9\.]/g, '');
}
});
答案 0 :(得分:2)
您问题中的正则表达式无效。请求的模式比“数字”更复杂。而不是使用
检查非匹配模式if (this.value != this.value.replace(...
我建议使用匹配的
if ("" != this.value.replace(...
符合您的需求:([0-9]|10)(\.[0-9][0-9][0-9])?
注意:最后一行中的替换不一定能解决问题,就像在第一个示例中一样。