即使这是一个旧线程,我认为它对那些仍在寻找答案的人可能很有用。
Locutus.io函数似乎是最好的解决方案:
function strip_tags (input, allowed) {
allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('')
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi
var commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi
return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : ''
})
}
示例 1:
strip_tags('<p>Kevin</p> <br /><b>van</b> <i>Zonneveld</i>', '<i><b>')
返回 1:'Kevin <b>van</b> <i>Zonneveld</i>'
示例 2:
strip_tags('<p>Kevin <img src="someimage.png" onmouseover="someFunction()">van <i>Zonneveld</i></p>', '<p>')
返回 2:'<p>Kevin van Zonneveld</p>'
示例 3:
strip_tags("<a href='http://kvz.io'>Kevin van Zonneveld</a>", "<a>")
返回 3:"<a href='http://kvz.io'>Kevin van Zonneveld</a>"
示例 4:
strip_tags('1 < 5 5 > 1')
返回 4:'1 < 5 5 > 1'
示例 5:
strip_tags('1 <br/> 1')
返回 5:'1 1'
示例 6:
strip_tags('1 <br/> 1', '<br>')
返回 6:'1 <br/> 1'
示例 7:
strip_tags('1 <br/> 1', '<br><br/>')
返回 7:'1 <br/> 1'