假設我有一個這樣的字串將轉到我的 HTML:
<div>Wakanda Forever</div> <span class="movie">Black Panther</span>
Movies movies movies
<span class="movie">Spider man...
最后一個 span 標簽沒有關閉。
在正則運算式和 JavaScript 中,如何<span >從標簽中洗掉未關閉<span >Spider man...或關閉它?</span>
uj5u.com熱心網友回復:
使用正則運算式進行任何型別的 HTML 操作幾乎總是一個壞主意。
我推薦的解決方案是做瀏覽器所做的事情:將字串決議為 DOM(以類似的模糊、寬容的方式),然后將該 DOM 轉換回 HTML。
在瀏覽器環境中,這特別容易,因為您可以讓瀏覽器自己為您做這件事,方法是將壞的 HTML 寫入innerHTML一個元素,然后將其讀回 - 瀏覽器會為您修復它:
const badHtml = `
<div>Wakanda Forever</div> <span >Black Panther</span>
Movies movies movies
<span >Spider man...
`
const element = document.createElement('i')
element.innerHTML = badHtml
const result = element.innerHTML
console.log(result)
在 node.js 中,您可以改用Cheerio 之類的庫:
import cheerio from 'cheerio'
const badHtml = `
<div>Wakanda Forever</div> <span >Black Panther</span>
Movies movies movies
<span >Spider man...
`
const $ = cheerio.load(badHtml)
const result = $.html()
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/467315.html
標籤:javascript html 细绳
