-1
最終,我想要一個只允許輸入整數的掩碼,或者輸入了十進制/句點:允許小數點後的0位數字。將正則表達式轉換爲Javascript輸入掩碼
有效輸入
1
1.
1.1
1.11
111111111
111111111.
111111111.1
111111111.11
無效的輸入
a
a.
1.a
1.111
1.1111
- 字符串允許任何數目的數字字符,但只允許1位小數/週期
- 如果一個週期/十進制存在:小數點後只允許2位數字字符
這個正則表達式做到了這一點:
^\d*\.?([\d]){0,2}$
現在我需要將此作爲掩模來輸入。我正在使用Robin Herbots' Inputmask。我真的很努力做這項工作。
我知道有別名currency
,但這並不完全按照要求工作。我想要的是,除非有輸入,否則輸入默認爲在焦點/焦點上空白。 currency
默認爲0.00
。我也希望允許用戶從字段中刪除所有內容,因此它將是空白的。 currency
不允許您保留輸入空白。相反,它只會允許你離開字段0.00
。
$('.moneyfield').inputmask("999", {rightAlign: true, numericInput: true});
具體的面具應該在「999」點。我無法弄清楚如何使用內置蒙版,所以我試圖將正則表達式插入蒙版。到目前爲止,我對兩種策略都沒有成功。
另一個嘗試是使用currency
別名,然後重寫它以達到我想要的效果。我也沒有成功。這裏是currency
面具的定義:
currency: {
prefix: "$ ",
groupSeparator: ",",
alias: "numeric",
placeholder: "0",
autoGroup: !0,
digits: 2,
digitsOptional: !1,
clearMaskOnLostFocus: !1
}
a投票無解釋? – Neil
您可以在HTML5中輕鬆使用輸入的'pattern'屬性。它允許你用正則表達式來掩蓋輸入元素,就像你想要的一樣。查看[documentation](http://www.w3schools.com/TAGS/att_input_pattern.asp) –
@VivekPradhan偉大的建議,不幸的是我需要它與Safari一起工作,並且Safari不支持此功能。 – Neil