Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery plugin for formatting inputs

I want to accept values in any of the following format:

  • -$5
  • -$5.00
  • $5
  • $5.00

Is it possible to do that using Masked Input Plugin?

If not, what plug-in am I looking for?

How do I indicate a character is optional?

The code I've got so far

$.mask.definitions['~']='[ +-]';
$(".currency").mask("~$9");
like image 578
antony.trupe Avatar asked Jun 14 '09 03:06

antony.trupe


3 Answers

Here is how i would implement the validation rule :

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

The problem with your pattern is that it is not fixed-length, so hard to code in mask, and you may encounter some people giving $3.5, which is not what you want. With such a pattern of yours, I think it will be hard not to fall back on regexp matching.

You may consider making the cent part mandatory, in which case your pattern is almost ok, just add .99 at the end and it should do it (although as a user I would hate to have to start my currency with a space character...).

like image 102
glmxndr Avatar answered Nov 13 '22 12:11

glmxndr


Just to clarify Antony response, the plugin that he's using is jquery-maskmoney:

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

like image 25
Diego Plentz Avatar answered Nov 13 '22 12:11

Diego Plentz


I think this will help you.

Use the syntax

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

You can show the symbol but it is probably better to hide it.

like image 4
sherif sakr Avatar answered Nov 13 '22 11:11

sherif sakr