Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

267
Visualizações
Javascript - Regex reemplaza el número con HH: MM

Estoy tratando de reemplazar 4 números con un formato de hora. Por ejemplo, si el usuario ingresa 1234 para ser reemplazado por 12:34

He encontrado que esta expresión regular hace este trabajo

 let myString = "1234"; myString.replace(/\b(\d{2})(\d{2})/g, '$1:$2')

Pero ahora estoy tratando de descubrir cómo usar esto con casos como

94: esto debe reemplazarse con 23, luego hace lo mismo para el tiempo después del colon

01:74 - esto debería ser reemplazado por 01:59

Encontré una expresión regular que hace eso ^([0-1]?[0-9]|2[0-3]):[0-5][0-9] , pero no puedo averiguar cómo para combinar esto con .replace

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Deberá hacer coincidir el primer y el segundo par de dígitos y luego vincularlos por sus valores máximos. Una vez que tenga los valores acotados, puede rellenar los números y unirlos con dos puntos.

 const toTimeString = (value) => { const [, hours, minutes] = value.match(/^(\d{2})(\d{2})$/), hour = `${Math.min(+hours, 24)}`.padStart(2, '0'), minute = `${Math.min(+minutes, 59)}`.padStart(2, '0'); return `${hour}:${minute}`; }; console.log(toTimeString('0174')); // 01:59 console.log(toTimeString('3412')); // 24:12

Ahora, aquí hay un ejemplo de reemplazo:

 const minPad = (value, min) => `${Math.min(value, min)}`.padStart(2, '0'); const toTimeString = (value) => value.replace(/\b(\d{2})(\d{2})\b/g, (match, hours, minutes) => `${minPad(hours, 24)}:${minPad(minutes, 59)}`); console.log(toTimeString('0174 3412')); // 01:59 24:12

about 4 years ago · Juan Pablo Isaza Relatório

0

Hay una sobrecarga de replace que toma una función que puede usar para hacer cualquier lógica que necesite, como:

 let myString = "1234"; function formatTime(input){ return input.replace(/\b(\d{2})(\d{2})/, (_,hh,mm) => { return `${Math.min(hh,24)}:${Math.min(mm,59)}` }) } console.log(formatTime("1234")); console.log(formatTime("3412")); console.log(formatTime("0174"));

about 4 years ago · Juan Pablo Isaza Relatório

0

No veo ninguna buena razón para usar expresiones regulares en su caso.
Solo una función simple hará el trabajo.

 function transformTextToHHMMTimeFormat(text) { const firstNumber = Number(text.slice(0, 2)) const secondNumber = Number(text.slice(2, 4)) const hour = Math.min(firstNumber, 24) const minute = Math.min(secondNumber, 59) return `${hour}:${minute}` }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda