2013-04-10 48 views
0

我有我使用獲得來自用戶的貨幣量的輸入欄。我正在使用jQuery Money Mask函數將掩碼放在用戶的輸入上。例如,如果用戶鍵入「100000」,它將在輸入字段中顯示爲「$ 1,000.00」。問題是我有一個輸入字段的模式設置,以限制它只有數字值。我需要修改這個正則表達式(pattern="[0-9]*"),以便它接受貨幣字符串。任何幫助最受讚賞!HTML數字值的輸入字段模式。

代碼輸入字段:

<input name="rentPayment[paymentAmount]" id="paymentAmount" placeholder="0.00" value="" type="text" pattern="[0-9]*">

+0

'模式= 「(\ $)?\ d *」' – Bart 2013-04-10 00:22:16

回答

2

我不熟悉的jQuery面膜的錢,但如果你需要的是正則表達式,然後下面應該足以允許貨幣價值。

pattern="[0-9$,.]*" - would allow 0-9 dollar sign, comma and period zero or more times. 
+1

下來,髒的方法。不完美但適合我的目的。 :-) – Zack 2013-04-10 00:37:31

2

如何:

\$(\d(,?\d+)*)+(\.\d+)? 

這將支持:

$ 324234.23423
$ 3242343
$ 3,242.4234
$ 3242

但我不建議這種做法,因爲這將取決於用戶的本地化,而且也對插件的依賴 - 這實際上只是掩蓋用戶的輸入。我寧願按照你所做的來驗證用戶的字符串,並讓掩碼插件做這些工作來美化。所以你需要在插件發生之前做你的驗證。

這樣做的一個可行的解決辦法是離開驗證領域的空白 - 貨幣面膜會驗證你,所以你並不需要一個外部模式做進一步驗證在這種情況下。

+0

謝謝。我與其他解決方案一起去了,但感謝您花時間回答! – Zack 2013-04-10 00:37:48

+1

無論哪種方式將工作 - 不知道如何處理模式'的情況下=「」'但會產生同樣的效果 – 2013-04-10 00:44:41