2012-06-14 12 views
5

¿Cómo puedo permitir espacios dentro de una validación de solo números, con un mínimo de 8 dígitos? Los números de teléfono son mucho más fáciles de escribir cuando se permiten espacios. p.ej. 0400 123 456, 9699 1234.jQuery número de teléfono de validación permite espacios, mínimo de 8 dígitos

Aquí está mi código hasta ahora, sólo tengo el mínimo de 8 dígitos de validación de trabajo:

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/.test(phone_number); 
    }, 
    "Please enter numbers only" 
); 
+0

Hola, ha encontrado este post durante la búsqueda de una respuesta a una pregunta similar. ¿Nunca usaste addMethod para crear una regla de validación personalizada, en qué parte del flujo de documentos especificas la regla personalizada? ¿Y cómo puede llamarlo desde la sección de reglas de su función de validación? – Barbs

Respuesta

4

quitar el espacio antes de validar:

return this.optional(element) || /^\d{8,}$/.test(phone_number.replace(/\s/g, '')); 

De esta manera se conserva el espacio

+0

Gracias que funciona, pero quiero un mínimo de 8 números, algunos números de teléfono tendrán 10 dígitos. ¿Cómo puedo asegurarme de que la cantidad de dígitos sea mayor que 8? – JV10

+0

@ JV10 simplemente agregue una coma después de '8' dentro de las llaves :), editó mi respuesta según su comentario –

1

Mi sugerencia es eliminar sólo los espacios de la phone_number antes de validar.

jQuery.validator.addMethod(
    "phone", 
    function(phone_number, element) { 
    return this.optional(element) || /^\d{8}$/ *$/.test(phone_number.replace(/\s/g, "")); 
    }, 
    "Please enter numbers only" 
); 
+1

Preferiría conservar los espacios ya que cuando se envíe el formulario será más fácil de leer para el destinatario. – JV10

+0

He actualizado según su comentario. –

Cuestiones relacionadas