2011-05-23 14 views
8

que tiene esto para una validación personalizada para un cuadro de texto que acepta el dinero:jQuery Validación personalizada consulta de dinero

//custom validator for money fields 
$.validator.addMethod("money", function (value, element) { 
    return this.optional(element) || value.match(/^\$?\d+(\.(\d{2}))?$/); 
}, "Please provide a valid dollar amount (up to 2 decimal places) and do not include a dollar sign."); 

parece que funciona, pero no quiero que los signos de dólar permitidos. Cómo puedo cambiar a esto:

//custom validator for money fields 
$.validator.addMethod("money", function (value, element) { 
    return this.optional(element) || value.match(/^\?\d+(\.(\d{2}))?/); 
}, "Please provide a valid dollar amount (up to 2 decimal places) and do not include a dollar sign."); 

O debo pelar hacia fuera el signo de dólar en otro lugar y no molestar al usuario con un problema tan trivial? Si eso es cierto, ¿dónde debería hacer eso?

Gracias por responder a una pregunta tan n00b.

+0

Gracias por el bloque de código editar ... – TheTodd

+0

Pero su expresión regular no acepta ningún signo excepto los números ... – woyaru

Respuesta

3

simplemente elimine el valor antes de validar. es bastante simple:

var str = [your value]; 
str = str.replace('$',''); 
2

No, habría que cambiar a esta ..

value.match (/^\ d + ((\ d {2})) /.?)

Estos 3 caracteres formaban la parte de la expresión regular que coincidía con el signo de dólar.

\ $?

Cuestiones relacionadas