Sugeriría usar jQuery Validate y luego extendí la funcionalidad usando el siguiente código, que encontré en this blog post.
Ofrece un buen fragmento de código (y se pone mejor en los comentarios) que puede usar para números internacionales y números de teléfono de los EE. UU. Yo ya estaba usando el plugin additional methods
así que cambió el nombre del método intlphone
, y luego el código a mi página web, después de jQuery y antes de la instalación document.ready
/validación:
jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');
En el campo de entrada que quería ser un teléfono número que definen la clase de ser intlphone
y añadió una propiedad/atributo de HTML 5 para la longitud mínima (aunque esto también podría hacerse mediante la especificación de las reglas de validación cuando la creación de validación), por lo que mi entrada era algo así como:
<input class="required intlphone" name="phone" minLength="7" type="text" />
Como la entrada del blog dice que acepta dígitos también s -+()
y también espacios y extensiones en el formato x:
o ext:
No es una garantía de que un número de teléfono será válido el 100% del tiempo, pero no es un mal comienzo.
+1, validando tanto nosotros como números internacionales será imposible. – OptimusCrime
En realidad, hay una manera, puede validar un número que logre https://en.wikipedia.org/wiki/E.164 –