=============================================== ==========================
修改 我正在使用node.js,因此我无权访问DOM,并且使用HTML解析器进行解析不是一种选择(它不足以证明通过如此少量的文本)
=============================================== ==========================
首先,我知道。 HTML + Regex =失败。但是,我只需要删除所有带属性的标签。
这是我到目前为止所拥有的:
exports.strip_tags = function(input, allowed) {
// Strips HTML and PHP tags from a string
allowed = (((allowed || "") + "")
.toLowerCase()
.match(/<[a-z][a-z0-9]*>/g) || [])
.join('');
var tags = /<\/?([a-z][a-z0-9]*)\b[^>]>/gi,
commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
return input.replace(commentsAndPhpTags, '').replace(tags, function($0, $1){
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
});
}
任何人都知道如何更改其中一个正则表达式以使其删除我需要的内容?
澄清:此函数应删除所有带属性的标记,仅保留允许的标记(不含属性),并输出结果。
答案 0 :(得分:1)
将其转换为XHTML,然后使用xpath。
HTML-&gt; XHTML工具:
正如你所说的...... HTML + Regex =失败