猿问

Javascript:如何从字符串中获取所有 HTML 标签

我有一个包含 html 标签和纯文本的字符串

例如它可能是:<h1>Hello World</h1><p>Welcome to Javascript</p>

我想提取html标签(仅没有类名或属性的标签)到数组或列表,例如:

tags = ['<h1>', '</h1>', '<p>', </p>']

如何使用 JavaScript 实现这一点?

请注意,这应该在服务器上运行,因此我无法访问 DOM 等。


慕沐林林
浏览 171回答 3
3回答

动漫人物

const&nbsp;regex&nbsp;=&nbsp;/<\/?[\w\d]+>/gi;这应该得到带有开始和结束标签的标签,现在让我们看看它的工作原理:<只是起始尖括号\/是匹配文字反斜杠(如结束标签)?使反斜杠“可选”[\w\d]用于匹配字母数字字符+匹配更多字母数字字符>对于另一个尖括号标志:g匹配所有匹配项(呵呵)i不区分大小写(因为 HTML 不区分大小写)

杨魅力

您无法可靠地(或者可能根本无法)使用正则表达式解析任意 HTML。如果您在服务器上运行 JavaScript,那么您可能正在运行 Node.js。如果是这样,请为自己获取一个 HTML 解析器库,并使用它将 HTML 解析为 DOM 的表示形式。然后您可以可靠地从中提取所有标签。有许多可用的库可能适合。您可以尝试node-html-parser *,或在 Google 中搜索nodeJS HTML parser其他选项*(无隶属关系,不做推荐或其他)

摇曳的蔷薇

您需要将match() 与全局标志一起使用tags = html.match(/<[^>]*?>/g)正如评论中所指出的,如果 HTML 标记内有一个大于号 (>),而该标记仍然是有效的 HTML,则此答案将不起作用。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答