【问题标题】:jQuery Textbox Whole Number ValidationjQuery 文本框整数验证
【发布时间】:2013-06-07 01:31:39
【问题描述】:

我有下面的脚本,我用它来验证输入以验证文本框是否没有文本,它还可以有效地加倍以仅允许 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 之间的输入(仅限整数),没有文本,没有小数点。

【问题讨论】:

    标签: jquery validation textbox


    【解决方案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 位数字的正则表达式。然而,它将允许前导零,例如01、09 - 甚至00。我不知道这在您的情况下是否可以接受。

    Updated fiddle

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

    【讨论】:

    • 我已经创建了这个小提琴 - jsfiddle.net/HCGGJ - 你的代码对我不起作用?
    • @DustinCook 抱歉 - 我也没有更改 alter 功能 - 查看我的更新和小提琴
    • 有了这些正则表达式问题,每个人都疯狂地试图首先得到他们的答案(包括我:))
    • 阅读this!永远不要忘记它!
    【解决方案2】:

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

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

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

    请注意,您的代码不包含任何 jquery,这似乎是纯 javascript。

    【讨论】:

    • 他正在使用jQuery的keyup绑定事件
    • 不要向我道歉,向 John Resig 道歉!他会被激怒的!
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      试试这个

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

      你可以试一试Link

      【讨论】:

        猜你喜欢
        • 2014-07-10
        • 2015-11-13
        • 2014-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多