Esta es la respuesta más válida que encomtrarás compartir, pero primero mírala pausadamente y valora si se adapta a tu trabajo.
Solución:
Tu expresión regular debería ser algo como
[0-9-()s]+
.
Coincide con números, guiones, paréntesis y espacio.
Si necesita algo más estricto, que coincida solo con su ejemplo, intente esto:
([0-9]10)|(([0-9]3)s+[0-9]3-[0-9]4)
Tu codigo:
rules:
phoneNumber:
matches: "[0-9]+", // <-- no such method called "matches"!
minlength:10,
maxlength:10
No existe tal función de devolución de llamada, opción, método o regla llamada matches
en cualquier lugar dentro del complemento jQuery Validate. (EDITAR: OP no mencionó eso matches
es su método personalizado.)
Sin embargo, dentro del additional-methods.js
archivo, hay varios métodos de validación de números de teléfono que puede utilizar. el llamado phoneUS
debe satisfacer su patrón. Dado que la regla ya valida la longitud, minlength
y maxlength
son redundantemente innecesarios. También es mucho más completo en el sentido de que los códigos de área y los prefijos no pueden comenzar con un 1
.
rules:
phoneNumber:
phoneUS: true
DEMOSTRACIÓN: http://jsfiddle.net/eWhkv/
Si, por cualquier motivo, solo necesita la expresión regular para usarla en otro método, puede tomarla desde aquí...
jQuery.validator.addMethod("phoneUS", function(phone_number, element) [2-9]d2)-?[2-9]d2-?d4$/);
, "Please specify a valid phone number");
/(?([0-9]3))?([ .-]?)([0-9]3)2([0-9]4)/
Soporta:
- (123) 456 7899
- (123).456.7899
- (123)-456-7899
- 123-456-7899
- 123 456 7899
- 1234567899
Reseñas y puntuaciones del tutorial
Tienes la posibilidad dar recomendación a esta división si lograste el éxito.