Tengo una cadena algo como:
Lorem ipsum dolor sit amet, #consectetur and #adipiscingQuiero agregar una etiqueta html para los hashtags que están presentes en la cadena. La salida esperada es:
Lorem ipsum dolor sit amet, <a href="/users/tag/consectetur">#consectetur</a> and <a href="/users/tag/adipiscing">#adipiscing</a>Estoy usando el operador de cadena javascript split() y join(), pero no obtengo el resultado esperado.
const string = "Lorem ipsum dolor sit amet, #consectetur and #adipiscing" function addHtmlTag(string){ string = string.split("#").join('<a href="#/users/tag/">#</a>'); return string } console.log(addHtmlTag(string))¿Cuáles serán los cambios para agregar la etiqueta html?
Puedes usar algo como esto:
const str = "Lorem ipsum dolor sit amet, #consectetur and #adipiscing" const replacedStr = str.split(" ").map(word => ( word[0] === "#" ? `<a href="/users/tag/${word.split("#")[1]}">${word}</a>` : word )).join(" ") console.log(replacedStr) Esto busca palabras que comiencen con "#" y agregue a etiqueta basada en la palabra.
Se puede reemplazar con expresiones regulares
const str = 'Lorem ipsum dolor sit amet, #consectetur and #adipiscing' const result = str.replace(/#(\w+)\b/g, '<a href="/users/tag/$1">#$1</a>') console.log(result)Te perdiste las comillas dobles ("")
const string = "Lorem ipsum dolor sit amet, #consectetur and #adipiscing"