Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/04/2010, 01:26
Avatar de aniMAYtions
aniMAYtions
 
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años, 1 mes
Puntos: 2
Respuesta: validacion de expresión regular que me trae de cabeza

Lo volveré a probar, pero mientras tanto pongo el código que logró validármela correctamente
Código Javascript:
Ver original
  1. function validaFecha(tipo, label)
  2.     {
  3.         valor = document.getElementById(tipo).value;
  4.         if(valor != '' && valor != undefined)
  5.         {
  6.             var fecha = valor.split('/');
  7.             if(fecha[1] == undefined || fecha[2] == undefined)
  8.             {
  9.                 document.getElementById(tipo).value = "";
  10.                 document.getElementById(label).style.color='red';
  11.                 return (false);
  12.             }
  13.             else
  14.             {
  15.                 if(fecha[1]>12)
  16.                 {
  17.                     document.getElementById(tipo).value = "";
  18.                     document.getElementById(label).style.color='red';
  19.                     return (false);
  20.                 }
  21.                 else
  22.                 {
  23.                     var fechaactual = new Date();
  24.                     var anio=fechaactual.getFullYear();
  25.                     if(tipo == 'nacimiento' && fecha[2]>(anio-16))
  26.                     {
  27.                         document.getElementById(tipo).value = "";
  28.                         document.getElementById(label).style.color='red';
  29.                         return (false);
  30.                     }
  31.                     else if(tipo == 'finmayor' && fecha[2]<anio)
  32.                     {
  33.                         document.getElementById(tipo).value = "";
  34.                         document.getElementById(label).style.color='red';
  35.                         return (false);
  36.                     }
  37.                     else
  38.                     {
  39.                         switch(fecha[1])
  40.                         {
  41.                            
  42.                             case 01:
  43.                                 if(fecha[0]>31)
  44.                                 {
  45.                                     document.getElementById(tipo).value = "";
  46.                                     document.getElementById(label).style.color='red';
  47.                                     return (false);
  48.                                 }
  49.                                 else
  50.                                 {
  51.                                     document.getElementById(label).style.color='#646464';
  52.                                 }
  53.                             break;
  54.                             case 02:
  55.                                 if(fecha[0]>29)
  56.                                 {
  57.                                     document.getElementById(tipo).value = "";
  58.                                     document.getElementById(label).style.color='red';
  59.                                     return (false);
  60.                                 }
  61.                                 else
  62.                                 {
  63.                                     document.getElementById(label).style.color='#646464';
  64.                                 }
  65.                             break;
  66.                             case 03:
  67.                                 if(fecha[0]>31)
  68.                                 {
  69.                                     document.getElementById(tipo).value = "";
  70.                                     document.getElementById(label).style.color='red';
  71.                                     return (false);
  72.                                 }
  73.                                 else
  74.                                 {
  75.                                     document.getElementById(tipo).style.color='#646464';
  76.                                 }
  77.                             break;
  78.                             case 04:
  79.                                 if(fecha[0]>30)
  80.                                 {
  81.                                     document.getElementById(tipo).value = "";
  82.                                     document.getElementById(label).style.color='red';
  83.                                     return (false);
  84.                                 }
  85.                                 else
  86.                                 {
  87.                                     document.getElementById(label).style.color='#646464';
  88.                                 }
  89.                             break;
  90.                             case 05:
  91.                                 if(fecha[0]>31)
  92.                                 {
  93.                                     document.getElementById(tipo).value = "";
  94.                                     document.getElementById(label).style.color='red';
  95.                                     return (false);
  96.                                 }
  97.                                 else
  98.                                 {
  99.                                     document.getElementById(label).style.color='#646464';
  100.                                 }
  101.                             break;
  102.                             case 06:
  103.                                 if(fecha[0]>30)
  104.                                 {
  105.                                     document.getElementById(tipo).value = "";
  106.                                     document.getElementById(label).style.color='red';
  107.                                     return (false);
  108.                                 }
  109.                                 else
  110.                                 {
  111.                                     document.getElementById(label).style.color='#646464';
  112.                                 }
  113.                             break;
  114.                             case 07:
  115.                                 if(fecha[0]>31)
  116.                                 {
  117.                                     document.getElementById(tipo).value = "";
  118.                                     document.getElementById(label).style.color='red';
  119.                                     return (false);
  120.                                 }
  121.                                 else
  122.                                 {
  123.                                     document.getElementById(label).style.color='#646464';
  124.                                 }
  125.                             break;
  126.                             case 08:
  127.                                 if(fecha[0]>31)
  128.                                 {
  129.                                     document.getElementById(tipo).value = "";
  130.                                     document.getElementById(label).style.color='red';
  131.                                     return (false);
  132.                                 }
  133.                                 else
  134.                                 {
  135.                                     document.getElementById(label).style.color='#646464';
  136.                                 }
  137.                             break;
  138.                             case 09:
  139.                                 if(fecha[0]>30)
  140.                                 {
  141.                                     document.getElementById(tipo).value = "";
  142.                                     document.getElementById(label).style.color='red';
  143.                                     return (false);
  144.                                 }
  145.                                 else
  146.                                 {
  147.                                     document.getElementById(label).style.color='#646464';
  148.                                 }
  149.                             break;
  150.                             case 10:
  151.                                 if(fecha[0]>31)
  152.                                 {
  153.                                     document.getElementById(tipo).value = "";
  154.                                     document.getElementById(label).style.color='red';
  155.                                     return (false);
  156.                                 }
  157.                                 else
  158.                                 {
  159.                                     document.getElementById(label).style.color='#646464';
  160.                                 }
  161.                             break;
  162.                             case 11:
  163.                                 if(fecha[0]>30)
  164.                                 {
  165.                                     document.getElementById(tipo).value = "";
  166.                                     document.getElementById(label).style.color='red';
  167.                                     return (false);
  168.                                 }
  169.                                 else
  170.                                 {
  171.                                     document.getElementById(label).style.color='#646464';
  172.                                 }
  173.                             break;
  174.                             case 12:
  175.                                 if(fecha[0]>31)
  176.                                 {
  177.                                     document.getElementById(tipo).value = "";
  178.                                     document.getElementById(label).style.color='red';
  179.                                     return (false);
  180.                                 }
  181.                                 else
  182.                                 {
  183.                                     document.getElementById(label).style.color='#646464';
  184.                                 }
  185.                             break;
  186.                        
  187.                         }
  188.                     }
  189.                 }
  190.             }
  191.         }
  192.     };

Ya sé que es muy larga, pero valida día y mes, dependiendo del mes, y año dependiendo de para qué cometido queremos validar la fecha.

Un saludo y gracias de nuevo!!