skip to Main Content

I want to remove <span> and <i> tag along with text in the title attribute.
I have tried replace(/<span>(.*?)</span>/g, '') but it’s not working. Anyone help to achieve this.

containerval =  $('p').attr('title')
k = containerval.replace(/<span>(.*?)</span>/g, '')
console.log(k,'kkkk')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p title="Lorem Ipsum is simply dummy <span class='required'>*</span><i class='fa fa-info-circle attr_info cont_row_info' title='Enter Hrs'></i>">Lorem Ipsum is simply dummy text of the printing and typesetting industry</p>

3

Answers


  1. Replace everything that is between < and >:

    const containerval =  $('p').attr('title')
    const title = containerval.replace(/<.*>/, '').trim()
    console.log({ title })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <p title="Lorem Ipsum is simply dummy <span class='required'>*</span><i class='fa fa-info-circle attr_info cont_row_info' title='Enter Hrs'></i>">Lorem Ipsum is simply dummy text of the printing and typesetting industry</p>
    Login or Signup to reply.
  2. Do not use regex to parse HTML

    Instead you can use a fragment if you trust the content

    let $div = $("<div/>").html($('p').attr('title'))
    console.log($div.html())
    $div.find("span,i").remove()
    console.log($div.html())
    $('p').attr("title",$div.text())
    console.log($('p').attr("title"))
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <p title="Lorem Ipsum is simply dummy <span class='required'>*</span><i class='fa fa-info-circle attr_info cont_row_info' title='Enter Hrs'></i>">Lorem Ipsum is simply dummy text of the printing and typesetting industry</p>
    Login or Signup to reply.
  3. Reusable and best approach.

    const tagRemover = (string, htmlTag) => {
      const RX = `<${htmlTag}.*?>.*?</${htmlTag}>` 
      return string.replace( new RegExp( RX, 'ig'),'')  
    }
    
    const p = document.querySelector('p')
    const myString = p.getAttribute('title')
    
    console.log('Removed <span> tag 👉 ', tagRemover(myString, 'span'));
    console.log('Removed <i> tag 👉 ', tagRemover(myString, 'i'));
    
    
    const spanTagRemoved = tagRemover(myString, 'span')
    const iTagRemovedToo = tagRemover(spanTagRemoved, 'i') 
    p.setAttribute('title', iTagRemovedToo)
    <p title="Lorem Ipsum is simply dummy <span class='required'>*</span><i class='fa fa-info-circle attr_info cont_row_info' title='Enter Hrs'></i>">Lorem Ipsum is simply dummy text of the printing and typesetting industry</p>
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search