我必须允许用户只允许文本框中的数值。它应该删除任何非数字方法。无论他们如何提供输入......无论是打字还是复制+粘贴。
我的代码
var nCheck = function (field) {
var re = /^[0-9]*$/;
if (!re.test(field.value)) {
field.value = field.value.replace(/[^0-9]*$/g,"");
}
};
除非您复制粘贴类似aaa2的内容,否则此方法有效。而aaaa或aa工作。问题是当最后一个地方包含号码失败时。
感谢您的帮助。
答案 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;