2 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
使用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貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
如果您嚴(yán)格使用字符串,則需要使用正則表達(dá)式。
僅供參考 我正在使用 ES20xx 語法。如果您不支持此功能,則需要轉(zhuǎn)換為您的用戶可以訪問的語法。
這里我有一個(gè)表達(dá)式,它捕獲開始 <ul>
或 <li>
和結(jié)束標(biāo)記之間的任何內(nèi)容。然后我使用換行符將字符串拆分為數(shù)組。我們需要從結(jié)果數(shù)組中過濾掉空元素,最后在最終數(shù)組中返回所需的項(xiàng)目。
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 關(guān)注
- 211 瀏覽
添加回答
舉報(bào)