即使这是一个旧的线程,我认为它仍然对那些仍在寻找答案的人有用。
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/>')
returns 7: '1 <br/> 1'
strip_tags
函数[不会]删除被剥离标签的内容(http://php.net/manual/en/function.strip-tags.php)。 - Lightness Races in Orbit