【问题标题】:validating numeric values in text box验证文本框中的数值
【发布时间】:2012-04-19 06:34:35
【问题描述】:

我必须允许用户在文本框中只允许数值。它应该删除任何非数字方法。无论他们如何提供输入...输入或复制+粘贴。

我的代码

var nCheck  = function (field) {
var re = /^[0-9]*$/;
               if (!re.test(field.value)) {

                       field.value = field.value.replace(/[^0-9]*$/g,"");
               }
 };

这有效,除非您复制粘贴类似 aaa2 的内容。而 aaaa 或 aa 工作。问题是当最后一个位置包含数字时它会失败。

感谢您的帮助。

【问题讨论】:

  • 什么事件正在使用你的函数作为回调? keydownkeyupchange?
  • keyup 事件。 $(selector).keyup(function(){ ncheck(this)})

标签: javascript regex validation numbers


【解决方案1】:

做事

field.value = field.value.replace(/[^0-9]/g,"");

这将替换所有不是数字的东西,您甚至不必运行test 函数。

【讨论】:

    【解决方案2】:

    $ 表示“字符串结束”。删除它,它应该可以工作。

    其他提示:

    * 替换为+* 包含空字符串

    也许最好警告用户,以防数字字符是拼写错误(比如按 Q 而不是 1)

    【讨论】:

      【解决方案3】:

      如果您使用 jQuery,请查看 textola 一个 jquery 数字插件。

      【讨论】:

        【解决方案4】:

        没有正则表达式:

        field.value = isNaN(field.value) ? '' : field.value;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-09
          • 1970-01-01
          • 2014-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多