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

178
Visualizações
dividir una cadena en javascript según los delimitadores de inicio y fin

Estoy buscando una manera en Javascript para dividir una cadena en una matriz basada en separadores de "inicio" y "finalización" en lugar de un separador, como lo hace actualmente str.split.

Por ejemplo, si tengo esta cadena:

 const str = '{lang}_{cmp_abbrev}_{cmp_type}_{pl_abbrev}_{w}x{h}_d{dv}c{cv}'

El resultado de:

 str.mySplit('{', '}');

seria este:

 [ '{lang}', '_', '{cmp_abbrev}', '_', '{cmp_type}', '_', '{pl_abbrev}', '_', '{w}', 'x', '{h}', '_d', '{dv}', 'c', '{cv}' ]

Por lo tanto, tomaría en consideración 2 caracteres en lugar de un carácter al determinar cómo debe ocurrir la división de cadenas.

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

0

Regex al rescate!

 const str = '{lang}_{cmp_abbrev}_{cmp_type}_{pl_abbrev}_{w}x{h}_d{dv}c{cv}' const values = [...str.matchAll(/\w+|\{\w+\}/g)].flat() console.log(values)

about 4 years ago · Juan Pablo Isaza Relatório

0

Array#split puede tomar expresiones regulares con grupos de captura:

 'foo{bar}baz{}!'.split(/(\{.*?\})/g) //=> ['foo', '{bar}', 'baz', '{}', '!']

Solo tenga en cuenta que se pueden generar cadenas vacías, por ejemplo,

 '{foo}bar{baz}'.split(/(\{.*?\})/g) //=> ['', '{foo}', 'bar', '{baz}', ''] '{foo}{bar}{baz}'.split(/(\{.*?\})/g) //=> ['', '{foo}', '', '{bar}', '', '{baz}', '']

Pero eso es normal y esperable. Si estos no son deseables, puede filtrarlos:

 '{foo}{bar}{baz}'.split(/(\{.*?\})/g).filter(Boolean) //=> ['{foo}', '{bar}', '{baz}']

Con su cadena inicial tenemos:

 '{lang}_{cmp_abbrev}_{cmp_type}_{pl_abbrev}_{w}x{h}_d{dv}c{cv}'.split(/(\{.*?\})/g).filter(Boolean) //=> ['{lang}', '_', '{cmp_abbrev}', '_', '{cmp_type}', '_', '{pl_abbrev}', '_', '{w}', 'x', '{h}', '_d', '{dv}', 'c', '{cv}']
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