我需要限制输入,以便用户只能输入美元金额。这意味着他们可以输入一串数字,可选择后跟一个小数和0-2个数字。没有逗号,没有美元符号。智能白名单限制输入值
我发现我认为这是一个很好的模式,但我也希望允许用户使用退格键,输入,选项卡等。我希望有一个更好的方法来做到这一点,而不是明确列出每个有效的键码在我的白名单上。我希望/\W/
可以做到这一点,但唉,它匹配太多的按键。
这是我现在拥有的。
$input.keypress(function(evt) {
var ch = String.fromCharCode(evt.which);
var val = evt.target.value + ch;
var pattern = /^\d+(\.?(\d{1,2})?)$/;
if (!pattern.test(val)) {
evt.preventDefault();
}
});
如果有一个聪明的和干净的方式允许用户进行更正并导航与键盘的形式,我会很高兴听到这个消息。
如果您有一个改进上述正则表达式的建议,请随时将其包含在您的答案中(或者如果您没有答案,请留下评论)。
谢谢!
我想尝试一个像这样的正则表达式:'\ $?[0-9,] + \(?:。[0-9] {2})?'。它会匹配'123,456.00'以及'123456'。 – Blender
@Blender:谢谢,我会用它,但他们实际上不希望逗号和美元符号在现场输入。 – Samo