我需要限制輸入,以便用戶只能輸入美元金額。這意味着他們可以輸入一串數字,可選擇後跟一個小數和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