验证文本框中的数值

时间:2012-04-05 13:54:47

标签: javascript regex validation numbers

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

我的代码

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

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

除非您复制粘贴类似aaa2的内容,否则此方法有效。而aaaa或aa工作。问题是当最后一个地方包含号码失败时。

感谢您的帮助。

4 个答案:

答案 0 :(得分:4)

只做

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

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

答案 1 :(得分:2)

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

其他提示:

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

没有正则表达式:

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