我有一个小表单,用户输入一定金额的存款。这个数量可以是正数也可以是负数。每次按下某个键时,我都会尝试验证表格,以防止意外输入字母或字符。JavaScript onkeyup正则表达式
考虑下面的功能:
var deposit = document.getElementById("deposit");
deposit.onkeyup = function() {
var PATTERN = /\d$/;
if (!deposit.value.match(PATTERN)) {
deposit.value = deposit.value.replace(deposit.value.slice(-1), "");
}
}
,如果你只希望用户能够输入数字这工作得很好,很正常。任何其他角色将被简单地删除。我遇到麻烦的时候会想出一个可以即时运行的模式,以匹配正面或负面的货币(没有美元符号)。用户需要输入一个可选的负号,至少一个数字,后跟一个小数点,然后再输入两个数字。
实施例的存款量:
0.09
100.45
4032.34
-0.90
-54.56
-1353.00
任何帮助提出一个模式,或者甚至更好的方法,将不胜感激。请让我知道是否需要更多细节。
你替换功能是有缺陷的。当'keyup'事件被触发时,可能在输入字段中输入了多个字符。它也*有可能是用户不会将脱字符号放在最后,导致你的函数被破坏。 – 2012-01-06 17:35:11