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

126
Visualizações
Función que reemplaza la palabra envuelta con ampersands con un solo hashtag al inicio

Traté de escribir una función para reemplazar los símbolos de unión que están alrededor de la palabra en cadena con un solo hashtag que estará al comienzo de la palabra &word& => #word . Y lo hice, pero después de mirar mi código puedo decir que es un poco feo, y también necesito una función que devuelva el texto a la versión con ampersand también. Entonces, tal vez alguien pueda decirme cómo puedo mejorarlo. ¿Quizás alguien pueda proporcionar una versión con expresiones regulares?

 const text = "&string& someText&string2& &string3& &string4&&string5&"; const replaceAmpersandsWithHashtag = (text: string) => { const firstStep = text.replace(/\&/g, '#'); let occurenceOfHashtag = 0; const secondStep = firstStep.split('').filter(char => { if(char === '#') { occurenceOfHashtag += 1 ; return occurenceOfHashtag % 2 === 0 ? false : true; } return true }).join(''); return secondStep } const replaceHashtagWithAmpersands = (text: string) => { const firstStep = text.replace(/\#/g, '&'); let isLookingForNextAmpersand = false; const secondStep = firstStep.split('').map((char, index) => { if(char === '&') { isLookingForNextAmpersand = true; return char; } if(isLookingForNextAmpersand && firstStep.length === index + 1) { isLookingForNextAmpersand = false; return `${char}&` } if(isLookingForNextAmpersand && (firstStep.charAt(index + 1) === ' ' || firstStep.charAt(index + 1) === '&')) { isLookingForNextAmpersand = false; return `${char}&` } return char }).join(''); return secondStep } const textWithHastags = replaceAmpersandsWithHashtag(text); const againWithAmpersands = replaceHashtagWithAmpersands(textWithHastags); // Should be "#string someText#string2 #string3 #string4#string5" console.log(textWithHastags) // Should be "&string& someText&string2& &string3& &string4&&string5&" console.log(againWithAmpersands) // Should be "true" console.log(text === againWithAmpersands)
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Utilice un grupo de captura en la expresión regular para copiar la palabra entre & en el reemplazo.

 function replaceAmpersandsWithHashtag(string) { return string.replace(/&(\w+)&/g, '#$1'); } function replaceHashtagWithAmpersands(string) { return string.replace(/#(\w+)/g, '&$1&'); } const text = "&string& someText&string2& &string3& &string4&&string5&"; const textWithHastags = replaceAmpersandsWithHashtag(text); const againWithAmpersands = replaceHashtagWithAmpersands(textWithHastags); // Should be "#string someText#string2 #string3 #string4#string5" console.log(textWithHastags) // Should be "&string& someText&string2& &string3& &string4&&string5&" console.log(againWithAmpersands) // Should be "true" console.log(text === againWithAmpersands)

about 4 years ago · Juan Pablo Isaza Relatório

0

está exagerando la solución, puede hacerlo fácilmente con la función replaceAll que reemplazará las ocurrencias de su búsqueda, en este caso necesitará usar algunas regex para hacer un reemplazo adecuado, por lo que puede usar &(\w+)& donde la parte (\w+) capturará el grupo entre & y luego puede usarlo en la llamada de reemplazo como $1 .

aquí está su código con la implementación de la explicación anterior

 const text = "&string& someText&string2& &string3& &string4&&string5&"; const replaceAmpersandsWithHashtag = (text) => { return text.replaceAll(/&(\w+)&/g, '#$1'); } const replaceHashtagWithAmpersands = (text) => { return text.replaceAll(/#(\w+)/g, '&$1&'); } const textWithHastags = replaceAmpersandsWithHashtag(text); const againWithAmpersands = replaceHashtagWithAmpersands(textWithHastags); // Should be "#string someText#string2 #string3 #string4#string5" console.log(textWithHastags) // Should be "&string& someText&string2& &string3& &string4&&string5&" console.log(againWithAmpersands) // Should be "true" console.log(text === againWithAmpersands)

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