背景后端返回一段html需要将标签中是属性删除
正则替换
/**
* @param str:String 要替换的文本
* @param tagArr:Array[String] 需要删除属性的tag
* @return String
*/
function delAttr(str, tagArr) {
if (typeof str !== 'string') return
let reg = new RegExp(`<(?=(${tagArr.join('|')})\\b)(.*?)(?=\>|\/>)`, 'gi')
return str.replace(reg, '<$1 ')
}
let res = delAttr(test, ['div', 'a', 'input'])
let test = `
<div class="seach-nav-c goods-top-seach"></div>
<div class='kkk' ><span class='dss'>水电费费</span></div>
<p><input type='text' value='ssss'/></p>
<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>
`
let res = delAttr(test, ['div', 'a', 'input'])
console.log(res)
// out log
`<div ></div>
<div ><span class='dss'>水电费费</span></div>
<p><input /></p>
<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>`
评论: