亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript:如何從字符串中獲取所有 HTML 標簽

Javascript:如何從字符串中獲取所有 HTML 標簽

慕沐林林 2023-11-02 10:09:45
我有一個包含 html 標簽和純文本的字符串例如它可能是:<h1>Hello World</h1><p>Welcome to Javascript</p>我想提取html標簽(僅沒有類名或屬性的標簽)到數組或列表,例如:tags = ['<h1>', '</h1>', '<p>', </p>']如何使用 JavaScript 實現這一點?請注意,這應該在服務器上運行,因此我無法訪問 DOM 等。
查看完整描述

3 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

const regex = /<\/?[\w\d]+>/gi;

這應該得到帶有開始和結束標簽的標簽,現在讓我們看看它的工作原理:

<只是起始尖括號

\/是匹配文字反斜杠(如結束標簽)

?使反斜杠“可選”

[\w\d]用于匹配字母數字字符

+匹配更多字母數字字符

>對于另一個尖括號

標志:

g匹配所有匹配項(呵呵)

i不區分大小寫(因為 HTML 不區分大小寫)


查看完整回答
反對 回復 2023-11-02
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

您無法可靠地(或者可能根本無法)使用正則表達式解析任意 HTML。

如果您在服務器上運行 JavaScript,那么您可能正在運行 Node.js。如果是這樣,請為自己獲取一個 HTML 解析器庫,并使用它將 HTML 解析為 DOM 的表示形式。然后您可以可靠地從中提取所有標簽。

有許多可用的庫可能適合。您可以嘗試node-html-parser?*,或在 Google 中搜索nodeJS HTML parser其他選項

*(無隸屬關系,不做推薦或其他)


查看完整回答
反對 回復 2023-11-02
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

您需要將match() 與全局標志一起使用

tags?=?html.match(/<[^>]*?>/g)

正如評論中所指出的,如果 HTML 標記內有一個大于號 (>),而該標記仍然是有效的 HTML,則此答案將不起作用。


查看完整回答
反對 回復 2023-11-02
  • 3 回答
  • 0 關注
  • 264 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號