2009-06-14 15 views
5

quiero aceptar los valores en cualquiera de los siguiente formato:plugin de jQuery para las entradas de formato

  • - $ 5 de
  • - $ 5,00
  • $ 5
  • $ 5,00

¿Es posible hacer eso usando Masked Input Plugin?

Si no es así, ¿qué complemento estoy buscando?

¿Cómo puedo indicar que un carácter es opcional?

El código que tengo hasta ahora

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

Respuesta

5

Aquí es cómo me gustaría poner en práctica la regla de validación:

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

El problema con el patrón es que no es de longitud fija, es tan difícil codificar con máscara, y puede encontrar a algunas personas dando $ 3.5, que no es lo que desea. Con ese patrón tuyo, creo que será difícil no recurrir a la comparación de expresiones regulares.

Considere hacer obligatoria la parte del centavo, en cuyo caso su patrón es casi correcto, solo agregue .99 al final y debería hacerlo (aunque como usuario no me gustaría tener que iniciar mi moneda con un personaje espacial ...).

+0

+1 y aceptó –

1

sé que en la máscara también puede hacer algo de la máscara opcional, por lo que podría ser capaz de salirse con esta

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

esto no funciona –

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

$ (". Moneda '). Máscara (' ~ $ 9? .99 ");

¿no funciona?

4

Creo que esto te ayudará.

Utilice la sintaxis

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

sello muestra el símbolo, pero es probable que sea mejor para ocultarlo.

Cuestiones relacionadas