0

我有以下 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, '');
}
});
4

1 回答 1

2

您问题中的正则表达式无效。请求的模式比“数字”更复杂。而不是检查匹配的模式

if (this.value != this.value.replace(...

我建议使用匹配的

if ("" != this.value.replace(...

这符合您的需要:([0-9]|10)(\.[0-9][0-9][0-9])?

注意:最后一行中的替换不一定能解决问题,就像在您的第一个示例中那样。

于 2013-06-03T07:22:27.393 回答