0

我有下面的脚本,我用它来验证输入以验证文本框是否没有文本,并且它还可以有效地加倍以仅允许 0 到 10 之间的数字,最多 3 位小数。

$('.sourceValidation').keyup(function () {
    if (!this.value.match(/^(([0-9]|10)(\.\d{1,3})?)?$/)) {
    this.value = this.value.replace(/[^0-9\.]/g, '').substring(0,5);}})

我不完全确定这段代码,但我该如何修改它,以便它验证 0 到 99 之间的输入(仅限整数),没有文本,没有小数点。

4

4 回答 4

2

您只需要接受 0 到 99 的正则表达式是

/^[0-9]{1,2}$/

这意味着: 接受从 '0' 到 '9' 的数字,1 或 2 次。

请注意,您的代码不包含任何 jquery,这似乎是纯 javascript。<-- 编辑:这我收回。我的错。

于 2013-06-11T08:59:43.480 回答
2

尝试这个

^[1-9][0-9]?$|^99$

你可以试一下链接

于 2013-06-11T09:04:30.503 回答
1

请在下面找到 jquery 的工作版本

[http://jsfiddle.net/jQmR3/][1]

这允许用户仅在 ($.inArray(charpressed, alpha) > -1) { return false; 时输入数字。您可以在数组中添加您需要允许的字符

于 2013-06-11T09:03:07.957 回答
1
$('.sourceValidation').keyup(function () {
    if (!this.value.match(/^([0-9]{0,2})$/)) {
        this.value = this.value.replace(/[^0-9]/g, '').substring(0,2);
    }
});

关键部分是改变正则表达式

/^(([0-9]|10)(\.\d{1,3})?)?$/

/^([0-9]{0,2})$/

..这是一个允许 0、1 或 2 位数字的正则表达式。然而,它将允许前导零,例如0109- 或什至00。我不知道这在你的情况下是否可以接受。

更新的小提琴

replace函数在说[^0-9]/g- 这意味着 - 替换任何不是 ( ^) 数字 ( 0-9) 的内容,并通过整个字符串 ( g- global) 执行此操作。然后将其修剪为最多 2 个字符 ( substring(0,2))。

于 2013-06-11T08:56:31.983 回答