jQuery文本框整数验证

时间:2013-06-11 08:53:46

标签: jquery validation textbox

我有下面的脚本,我用它来验证输入以验证没有文本的文本框,并且它也有用地加倍,只允许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 个答案:

答案 0 :(得分:2)

正则表达式只需要接受0到99而不需要任何其他内容

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

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

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

答案 1 :(得分:2)

试试这个

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

你可以品尝它Link

答案 2 :(得分: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。我不知道你的情况是否可以接受。

Updated fiddle

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

答案 3 :(得分:1)

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

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

这允许用户仅键入数字         if($ .inArray(charpressed,alpha)> -1){             返回false;         } 您可以在阵列中添加需要允许的字符