Home > Net >  How to concat string and add html tag to it?
How to concat string and add html tag to it?

Time:10-19

I have string something like:

Lorem ipsum dolor sit amet, #consectetur and #adipiscing 

I want to add html tag for hashtags which are present in the string. Expected Output is:

Lorem ipsum dolor sit amet, <a href="/users/tag/consectetur">#consectetur</a> and <a href="/users/tag/adipiscing">#adipiscing</a>

I am using javascript string operator split() and join(), but I am not getting the expected output.

    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))

What will be the changes for adding html tag?

CodePudding user response:

You can use something like this:

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)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

This searches for words that starts with "#" and append the a tag based on the word.

CodePudding user response:

It can replace with regexp

    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)
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>

CodePudding user response:

You missed Double qutes ("")

const string =  "Lorem ipsum dolor sit amet, #consectetur and #adipiscing"
  • Related