用于格式化输入的jQuery插件

时间:2009-06-14 03:59:40

标签: jquery maskedinput

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

  • - $ 5'/ LI>
  • - $ 5.00
  • $ 5
  • $ 5.00

是否可以使用Masked Input Plugin

执行此操作

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

如何指示字符是可选的?

我到目前为止的代码

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

5 个答案:

答案 0 :(得分:5)

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

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

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

您可以考虑将分数部分强制执行,在这种情况下您的模式几乎可以,只需在最后添加.99并且它应该这样做(尽管作为用户我不想用空格开始我的货币字符...)。

答案 1 :(得分:5)

为了澄清Antony的回应,他使用的插件是jquery-maskmoney:

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

答案 2 :(得分:4)

我认为这会对你有帮助。

使用语法

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

您可以显示符号,但隐藏它可能更好。

答案 3 :(得分:1)

我知道在面具中你也可以使一些面具可选,所以你可以逃脱这个

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

答案 4 :(得分:1)

$.mask.definitions['~']='[ +-]';

$(”货币 “)掩模(” 〜$ 9 0.99" ?);

不行吗???