5

我想接受以下任何格式的值:

  • -$5
  • -$5.00
  • 5 美元
  • 5.00 美元

是否可以使用Masked Input Plugin做到这一点?

如果没有,我在寻找什么插件?

如何指示字符是可选的?

到目前为止我得到的代码

$.mask.definitions['~']='[ +-]';
$(".currency").mask("~$9");
4

5 回答 5

5

以下是我将如何实施验证规则:

$('.myinput').val().match(/^[+-]?\$\d(?:\.\d\d)?$/)

你的模式的问题是它不是固定长度的,所以很难用掩码编码,你可能会遇到一些人给 3.5 美元,这不是你想要的。有了你的这种模式,我认为很难不依赖正则表达式匹配。

您可以考虑将美分部分设为强制性,在这种情况下,您的模式几乎没问题,只需在末尾添加 .99 就可以了(尽管作为用户,我讨厌必须以空格字符开头我的货币.. .)。

于 2009-06-14T04:24:19.007 回答
5

只是为了澄清安东尼的回应,他使用的插件是 jquery-maskmoney:

https://github.com/plentz/jquery-maskmoney

于 2011-04-20T00:51:10.530 回答
4

我想这会对你有所帮助。

使用语法

$(mask_id).maskMoney({showSymbol:false,decimal:'.',precision:2});

您可以显示该符号,但最好隐藏它。

于 2011-03-29T13:55:22.560 回答
1

我知道在面具中你也可以让一些面具成为可选的,所以你也许可以摆脱这个

$.mask.definitions['~']='[ +-]';
$(".currency").mask("~$9?.99");
于 2009-06-14T08:35:05.847 回答
1
$.mask.definitions['~']='[ +-]';

$(".currency").mask("~$9?.99");

不行吗???

于 2010-03-23T04:19:46.713 回答