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

200
Visualizações
Reemplazar palabras encontradas en cadena

Estoy tratando de reemplazar palabras en una cadena con una clave coincidente y una posición de índice sin eliminar las otras palabras.

Mi resultado deseado es: hey HI hey HELLO

Lo que he probado hasta ahora...

 var data = { items: ["item", "HI", "item2"], moreitems: ["moreitem", "moreitem1", "HELLO"] } var str = "hey #items1 hey #moreitems2"; var newStr = ''; var match = str.match(/#(.*?)\d+/g); //get str that starts with # and ends with digits for (var i = 0; i < match.length; i++) { var keys = match[i].replace(/#|\d+/g, ''), // remove hash and numbers to match the data keys pos = match[i].replace(/\D/g, ''); // get the digits in str newStr += data[keys][pos] + ' '; } console.log(newStr)

¡Gracias por tu ayuda!

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

0

Una solución simple sería usar replace() con una función de reemplazo.

Uso la expresión regular /#(\D+)(\d+)/g . # coincidente, seguido de uno o más que no sean dígitos (colocados en el grupo de captura 1), seguidos de uno o más dígitos (colocados en el grupo de captura 2).

diagrama de expresiones regulares
expresión regular

Todos los grupos de captura se pasan como argumentos de la función de reemplazo. La coincidencia completa se pasa como primer argumento, el grupo de captura 1 como segundo, etc.

Dentro de la función de reemplazo, puede acceder al valor según el índice y el nombre del atributo capturado.

 var data = { items: ["item", "HI", "item2"], moreitems: ["moreitem", "moreitem1", "HELLO"] } var str = "hey #items1 hey #moreitems2"; const result = str.replace( /#(\D+)(\d+)/g, (_match, attr, index) => data[attr][index] ); console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

puedes usar

  • string.replace para reemplazar el substr al final del proceso
  • calcule el índice en la matriz de cadenas recuperando el último carácter de la cadena de coincidencia con match[match.length - 1]
  • recupere la categoría de datos para usar eliminando el primer y el último carácter category = match.slice(0, -1).substring(1);

 var data = { items: ["item", "HI", "item2"], moreitems: ["moreitem", "moreitem1", "HELLO"] } var str = "hey #items1 hey #moreitems2"; var newStr = str; var match = str.match(/#(.*?)\d+/g); var index, category; console.log(match); match.forEach(match => { index = match[match.length - 1]; category = match.slice(0, -1).substring(1); newStr = newStr.replace(match, data[category][index]); }); console.log(newStr)

about 4 years ago · Juan Pablo Isaza Relatório

0

const dic = { xxx: 'hello', yyy: 'world', zzz: 'peace' } const string = 'hey! #xxx, #yyy! #zzz on you' const newString = string.replace(/#\w+/g, item => dic[item.substring(1)]) console.log(string) console.log(newString)
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