刪除指定標籤的屬性(方案收集)

背景

某站有人問到此問題,記錄一下,以防之後要用ide

目的

但願收到更多的解決方案,歡迎留言測試

/** * 刪除全部標籤屬性,支持忽略標籤 * @param {*} str 字符串文本 * @param {*} ignoreArr 要忽略的標籤 */
    function deleteAllTagAttr(str, ignoreArr) {
      if (typeof str !== 'string') return
      let  reg = new RegExp(`<(?!(${ignoreArr.join('|')}))(.*?)(?:>|\/>)`, 'gi')
    	return str.replace(reg, mstr => {
    		return mstr.replace(/(<[A-z]+)(.*)?(\/?>)/gi, '$1$3')
    	})
    }
    
    /** * 刪除指定標籤屬性, * @param {*} str 字符串文本 * @param {*} tagArr 要刪除屬性的標籤 */
    function deleteTagAttr(str, tagArr) {
      if (typeof str !== 'string') return
      let  reg = new RegExp(`<(?:(${tagArr.join('|')}))(.*?)(?:>|\/>)`, 'gi')
    	return str.replace(reg, mstr => {
    		return mstr.replace(/(<[A-z]+)(.*)?(\/?>)/gi, '$1$3')
    	})
    }
    
    
    
    
    
    // 測試文本
    let test = ` <div class="seach-nav-c goods-top-seach"></div> <img src="http://1907/10172941e5ft.jpg" alt="" class="seach-ad-img" /> <video src="ssss" class="sss"></video> <audio src="ssss" class="sss"></audio> <a href="ssss" >fdsf </a> `
    
    console.log(deleteAllTagAttr(test, ['img','video','audio']))
    /*打印結果 <div></div> <img src="http://1907/10172941e5ft.jpg" alt="" class="seach-ad-img" /> <video src="ssss" class="sss"></video> <audio src="ssss" class="sss"></audio> <a>fdsf </a> */
    
     console.log(deleteTagAttr(test, ['img']));
    /**打印結果 <div class="seach-nav-c goods-top-seach"></div> <img> <video src="ssss" class="sss"></video> <audio src="ssss" class="sss"></audio> <a href="ssss" >fdsf </a> */
    
    



複製代碼
相關文章
相關標籤/搜索