我正在嘗試/<img.*?src="(.*?)"[^>] >/g在這樣的函式中使用正則運算式從 HTML 字串中提取所有影像 URL:
function getImages(string) {
const imgRex = /<img.*?src="(.*?)"[^>] >/g;
const images = [];
let img;
while ((img = imgRex.exec(string))) {
images.push(img[1]);
}
return images;
}
但是,結果也包含非影像內容,例如:
[
'https://www.facebook.com/tr?id=900220307025564&ev=PageView&noscript=1',
'https://cyclingmagazine.ca/wp-content/uploads/2020/10/Peloton-Bike_Cam-1200x675.jpg',
'https://cyclingmagazine.ca/wp-content/uploads/2020/10/ontario-creates-logo.png',
'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"></div><div id=',
'https://cyclingmagazine.ca/wp-content/uploads/2019/03/cycling-pop-up.jpg'
]
這會破壞后續執行。我絕不是正則運算式專家(顯然),將不勝感激任何幫助!
uj5u.com熱心網友回復:
不要為此使用正則運算式。使用DOMParser API及其parseFromString() 方法。
let str = "<img src='https://www.example.com'>";
let DOMParsing = new DOMParser()
let parsed = DOMParsing.parseFromString(str, "text/html")
// Now you can use querySelector to target the wanted element
// or querySelectorAll and a loop for multiple elements
let imgURL = parsed.querySelector("img").src
console.log(imgURL)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/419695.html
標籤:
下一篇:無法創建物體框架代碼優先遷移
