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

248
Visualizações
Cómo dividir una cadena mediante la coincidencia de expresiones regulares en JavaScript

Ya llevo más de una hora intentándolo y no encuentro la forma correcta de hacerlo. Tengo esta expresión regular:

 const search = /("Response)\s+\d+\s+(of)\s+\d+(":)\s+/g;

tengo esta cadena:

 {"Response 1 of 2": {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, "Response 2 of 2": {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"}}

Me gustaría tener un resultado como este:

 [ {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"} ]

mi código:

 var lines = results.toString().split(/\n/); lines.forEach(function (item) { if (item.indexOf(myData) > 0) { var json = item.slice(item.indexOf(script) + script.length + 2).replace(PRINTABLE_CHAR, ''); var jsonMatch = json.split(json.match(search)); var result = jsonMatch.substr(0, jsonMatch.lastIndexOf('}')).replace(PRINTABLE_CHAR, ''); try { data = JSON.parse(result); } catch (e) { console.log('ERROR'); } } });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede lograr el mismo resultado usando Object.values

 const initialObject = {"Response 1 of 2": {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, "Response 2 of 2": {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"}} const resultObject = Object.values(initialObject); console.log(resultObject);

about 4 years ago · Juan Pablo Isaza Relatório

0

Este problema se puede resolver sin expresiones regulares. Puede analizar la primera cadena como JSON usando JSON. parse (cadena), luego puede obtener la lista de claves usando Object.keys (json) y luego hacer un forEach y empujarlo a una lista, lo que le dará lo que desea sin tener que lidiar con expresiones regulares. Voy a mostrar el código a continuación

 let string = '{"Response 1 of 2": {"Name": "Jouny", "Class": "TR23", "Message Type": "Offer", "ID Identifier": "19256", "Address": "hjfhfgjhjhj"}, "Response 2 of 2": {"Name": "Sarah", "Class": "BHT56", "Message Type": "Alarm", "ID Identifier": "89756767", "Address": "oplkdhdggd"}}' let list = [] //this will be the list that we will return at the end let data = JSON.parse(string) //parse the data into json Object.keys(data).forEach(key => list.push(data[key])) //get the keys and iterate through it return list //return the list

Esta debería ser una alternativa mucho mejor al uso de expresiones regulares. Regex no fue hecho para lo que estás tratando de hacer.

EDITAR: Ah, sigue el consejo de @callback. Usar object.values() sería una solución mucho mejor.

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