2 回答

TA貢獻1852條經驗 獲得超1個贊
使用DOMParser()
您移植的代碼與您的 PHP 非常相似:
let parser = new DOMParser()
let doc = parser.parseFromString(`<ul>
? ? <li>Item 1</li>
? ? <li>Item 2</li>
</ul>
<ul>
? ? <li>Item 3</li>
? ? <li>Item 4</li>
? ? <li>Item 5</li>
</ul>`, "text/html")
let lis = doc.getElementsByTagName('li')
let items = []
for (let i = 0; i < lis.length; i++) items.push(lis[i].textContent)
console.log(items)

TA貢獻1874條經驗 獲得超12個贊
如果您嚴格使用字符串,則需要使用正則表達式。
僅供參考 我正在使用 ES20xx 語法。如果您不支持此功能,則需要轉換為您的用戶可以訪問的語法。
這里我有一個表達式,它捕獲開始 <ul>
或 <li>
和結束標記之間的任何內容。然后我使用換行符將字符串拆分為數組。我們需要從結果數組中過濾掉空元素,最后在最終數組中返回所需的項目。
var htmlString = `<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<ul>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>`;
var lis = htmlString.replace(/<ul>|<li>(.*)<\/li>|<\/ul>/g, '$1').split('\n');
var items = lis
.filter(item => {
if (item && item !== null && item !== '') {
return item;
}
})
.map(item => {
var element = item.replace(/\s{2,}/g, '');
return element;
});
console.log('items array.', items);
- 2 回答
- 0 關注
- 213 瀏覽
添加回答
舉報