2011-12-22 30 views
5

Estoy tratando de validar un campo llamado phone_number con estas reglas:.expresión regular usando Javascript val() partido() método

el primer dígito debe ser de 3 luego otros 9 dígitos ejemplo lo que en total 10 Número: 3216549874

o puede ser 7 números 1234567

aquí tengo mi código:.

 if (!($("#" + val["htmlId"]).val().match(/^3\d{9}|\d{7}/))) 
      missing = true; 

Por qué no funciona :(cuando pongo que en una expresión regular en línea corrector muestra una buena

+0

demasiadas "val"? val [] y val() – mplungjan

Respuesta

6

Usted debe estar utilizando la prueba en lugar de encuentro y aquí está el código apropiado:

.test(/^(3\d{9}|\d{7})$/) 

Partido podrá encontrar todas las ocurrencias, mientras que la prueba sólo comprueba para ver si al menos uno está disponible (por lo tanto validando tu número).

+0

bien im va a probar gracias – alexistkd

+0

if (! ($ ("#" + val [ "htmlId"]) .val(). test (/^(3 \ d {9} | \ d {7}) $ /))) no funciona – alexistkd

+0

entonces tienes un problema con tu código jQuery, prueba en la consola Firebug de esta manera: ' 3216549874'.test (/^(3 \ d {9} | \ d {7}) $ /) – alessioalex

1

Prueba esto, es un poco más estricto.

.match(/^(3\d{9}|\d{7})$/) 
+0

no puede conseguir trabajo :( – alexistkd

+0

workss perfecta he cometido un error :) ahora su correcta – alexistkd

2

No se confunda por tubería. Debe terminar cada expresión

if (!($("#" + val["htmlId"]).val().match(/^3\d{9}/|/\d{7}/))) 
      missing = true; 

http://jsfiddle.net/alfabravoteam/e6jKs/

+0

no puedo conseguir que funcione :(lo puse misma como u – alexistkd

+0

son usted que el ID que está tratando es correcto? – Alfabravo

+0

sí, tengo otra regla como /.+/ y funciona también si (! ($ ("#" + Val ["htmlId"]). Val(). Coincidencia (/ [a-zA-Z] | \ d {1,12} /))) – alexistkd

2

tuve un problema similar y mi solución fue escribir que le gusta:

if (/^(3\d{9}|\d{7})$/.test($("#" + val["htmlId"]).val()) == false) { 
    missing = true; 
} 
Cuestiones relacionadas