0

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

我的代码

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

4 回答 4

4

做就是了

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

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

于 2012-04-05T13:57:30.393 回答
2

意思是“字符串的$结尾”。删除它,它应该可以工作。

其他提示:

替换*+; *包括空字符串

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

于 2012-04-05T13:59:02.407 回答
0

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

于 2012-04-05T13:57:05.040 回答
0

没有正则表达式:

field.value = isNaN(field.value) ? '' : field.value;
于 2012-04-05T14:00:45.413 回答