2013-04-10 51 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