正则expression式不匹配具有属性的标签?

================================================== =======================

编辑:我使用node.js,所以我没有访问的DOM,parsing与HTMLparsing器不是一个选项(这是不够有效,足以certificate通过这么less的文本传递)

================================================== =======================

首先,我知道。 HTML +正则expression式=失败。 不过,我只需要它删除所有具有属性的标签。

以下是我到目前为止:

exports.strip_tags = function(input, allowed) { // Strips HTML and PHP tags from a string allowed = (((allowed || "") + "") .toLowerCase() .match(/<[az][a-z0-9]*>/g) || []) .join(''); var tags = /<\/?([az][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 : ''; }); } 

任何机会有人知道如何改变这些正则expression式之一,使这个删除我需要它?

澄清:这个函数应该删除所有具有属性的标签,只保留允许的标签(不带属性),并输出结果。

将其转换为XHTML,然后使用xpath。

HTML-> XHTML工具:

正如你所说…. HTML +正则expression式=失败