Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

347
Vistas
¿Cómo diferenciar entre una cadena con formato de fecha (parsable) y un número flotante en cadena?

hay una cadena "05/05/2022" cómo verificar que puede ser una fecha, pero "5.1" no debe ser una fecha Ejemplo de fecha

 05.05.2020 05/05/2020 05/05/2020;22:40

un ejemplo de no una fecha sino un número

 5 5.1 5.23
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esto se puede hacer con una expresión regular como ...

  1. /^\d{1,2}(?<separator>[./])\d{1,2}\k<separator>\d{2}(?:\d{2})?(?:\s*;\s*\d{2}:\d{2})?$/ ... o ...

  2. /^\d{2}(?<separator>[./])\d{2}\k<separator>\d{4}(?:\s*;\s*\d{2}:\d{2})?$/

... donde el primero es más indulgente con el formato de fecha en términos de conteo de dígitos del día ( 1 o 2 ), mes ( 1 o 2 ) y año ( 2 o 4 ), mientras que el último impone un estricto conteo de dígitos de 2,2,4 para, por ejemplo dd/mm/yyyy .

Ambos patrones utilizan un grupo de captura con nombre para el separador de fecha (ya sea . o / ) que se utilizará como referencia inversa con nombre para garantizar un formato de fecha correcto.

Ambos patrones también presentan la coincidencia opcional para un formato de hora... [ (?:\s*;\s*\d{2}:\d{2})? ] ... que posiblemente siga un formato de fecha válido.

 const multilineSample = `5.5.20 5.5.202 5.5/2020 05.05.2020 05/05.2020 05/05/2020 05/05/2020;22:40 5 5.1 5.23`; // see ... [https://regex101.com/r/6CwyXy/1] const regXDateFormatLooseDigitCount = /^\d{1,2}(?<separator>[./])\d{1,2}\k<separator>\d{2}(?:\d{2})?(?:\s*;\s*\d{2}:\d{2})?$/gm; // see ... [https://regex101.com/r/6CwyXy/2] const regXDateFormatStrictDigitCount = /^\d{2}(?<separator>[./])\d{2}\k<separator>\d{4}(?:\s*;\s*\d{2}:\d{2})?$/gm console.log( 'sample data ...\n', multilineSample ); console.log( 'result for loose digit count ...', multilineSample.match(regXDateFormatLooseDigitCount) ); console.log( 'result for strict digit count ...', multilineSample.match(regXDateFormatStrictDigitCount) );
 .as-console-wrapper { min-height: 100%!important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Suponiendo que solo obtendrá números o fechas y nada más que estas dos entradas:

 // Assuming that you'll be getting either a date or a number let checkDate = (val)=>{ let count = 0 ; for(let i=0 ; i<val.length ; i++)if(val[i]==='.'||val[i]==="/")count++; if(count<=1)return false; return true; } let date1 = "05/05/2022"; if(checkDate(date1))console.log(date1+" is a date"); else console.log(date1+" is a number"); let date2 = "5.34"; if(checkDate(date2))console.log(date2+" is a date"); else console.log(date2+" is a number");

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda