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

190
Visualizações
Verificar una cadena con expresiones regulares en javascript

Necesito aceptar una cadena que defina cuántos códigos postales usará el usuario.

Ejemplos:

  • Si el usuario quiere usar todos los códigos postales del 1000 al 1200
    Luego ingresará 1000:1200
  • Si quiere usar solo 1000 y 1200
    Luego ingresará 1000,12000
  • combinar ambos es posible 1010:1015,1019,1025:1027 devolverá [1010,1011,1012,1013,1014,1015,1019,1025,1026,1027]

Necesito verificar esa cadena.
Usé esto para verificar pero no funcionó

 /(\d{4}(:|,){0,1}\d{4})/gm
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Comience con una frase básica que coincida con #### o ####:####

 \d{4}(:\d{4})?

Luego extiéndalo para que coincida con cualquier número de ellos en una lista separada por comas:

 \d{4}(:\d{4})?(,\d{4}(:\d{4})?)*

Finalmente, rodee con ^ y $ para validar toda la línea.

 ^(\d{4}(:\d{4})?)(,(\d{4}(:\d{4})?))*$
about 4 years ago · Juan Pablo Isaza Relatório

0

Por mucho que traté de simplificar un Regex, aquí hay un verdadero validador para sus cadenas específicas.
Parece un poco largo ya que coincide con un rango de 1000→1200 : 1(?:[01]\d{2}|200)

 /^1(?:[01]\d{2}|200)(?::1(?:[01]\d{2}|200)(?!:)|,1(?:[01]\d{2}|200))*$/g

Regex101.com ejemplo y descripción

sin el rango
el Regex es más simple pero también coincidirá con cualquier número de cuatro dígitos como 0000 , 9999 :

 /^\d{4}(?::\d{4}(?!:)|,\d{4})*$/g

Regex101.com ejemplo y descripción

Más simple, pero no para ser utilizado como validador
La solución más sencilla sería

 /^\d{4}(?:[,:]\d{4})*$/g

Regex101.com ejemplo y descripción
pero como puede ver, coincidirá con muchas entradas incorrectas como el 1000:1005:1020 inválido (dos :

about 4 years ago · Juan Pablo Isaza Relatório

0

Debe expandir estas coincidencias después de encontrar la coincidencia. Supongo que la cadena se valida antes, si no se usa if (/^\d+(?:[:,]\d+)*$/.test(s)) { ... } .

 let s = '1010:1015,1019,1025:1027'; const chunks = s.replace(/(\d+):(\d+)/g, (_,$1,$2) => Array.from( new Array(Number($2)-Number($1)), (x, i) => i + Number($1)) .join(",")).split(','); console.log(chunks);

La Array.from(new Array(Number($2)-Number($1)), (x, i) => i + Number($1)) genera un rango de números entre los valores del Grupo 1 y el Grupo 2 obtenidos con el /(\d+):(\d+)/g expresión regular.

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