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

160
Visualizações
Complejidad entre if-else, switch y regex

Voy a optimizar el código javascript en el que vi el código antiguo como se muestra a continuación,

 var emcont = $('#emcont').val(); numericMatch = emcont.match(/\d/g); if (numericMatch == null) { isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); } else if (emcont.length != 14) { isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); } else if (numericMatch.length && numericMatch.length != 10) { isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); } else { $('#msg_emcont').html('').hide(); }

Voy a convertir las condiciones if-else en condiciones de cambio, pero el problema en el código anterior es que la validación de la segunda condición usó la variable emcont , por lo que no puedo usar directamente numericMatch en la instrucción de switch . Así que decidí usar la variable emcont directamente en la declaración de switch como el siguiente código,

 switch(emcont) { case emcont.match(/\d/g) == null: isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); break; case emcont.length != 14: isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); break; case emcont.match(/\d/g).length && emcont.match(/\d/g).length != 10: isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); break; default: $('#msg_emcont').html('').hide(); break; }

En expresiones regulares usadas en la validación de casos de cambio, por lo que necesito saber qué código es mejor en cuanto a rendimiento.

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

0

No abuse de los efectos secundarios del switch(true) , que es lo que quiso decir

Esto es SECO y más fácil de leer.

 var emcont = $('#emcont').val(); const numericMatch = emcont.match(/\d/g); $('#msg_emcont') .html(getMessage('msg_emcont')) .toggle( numericMatch == null || emcont.length != 14 || (numericMatch.length && numericMatch.length != 10) )

Incluso podría considerar mudarse

 $('#msg_emcont').html(getMessage('msg_emcont'))

a la carga de la página por lo que solo se hace una vez

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