例如,如果我得到(var a
,请说):
<img src="http://123.com/1>2.png" />
<img src=`https://321.com/2<3.png` / >
<img src=//123.com/http.png>
<img src=321.com/http.png / >
从数据库然后我尝试创建一个库来显示所有这些,首先使它们成为一个数组:
['http://123.com/1>2.png','https://321.com/2<3.png','//123.com/http.png','321.com/http.png']
以下是我的尝试:
a.match(/<img[^>]*src=['"`]?([^>]+)/gi).join(',').replace(/src=|['"`]|\s|\//g,"").split(",")
答案 0 :(得分:0)
这适用于您的具体示例。如果它适用于您的所有网址......谁知道;)
<img.*?src\s*=\s*(?:(['"`])((?:(?!\1).)*)|((?:(?!\s*\/\s*>)[^>])*)).*
网址位于捕获组2 或 3。
var re = /<img.*?src\s*=\s*(?:(['"`])((?:(?!\1).)*)|((?:(?!\s*\/\s*>)[^>])*)).*/,
tags = [
'<img src="http://123.com/1>2.png" />',
'<img src=`https://321.com/2<3.png` / >',
'<img src=//123.com/http.png>',
'<img src=321.com/http.png / >'
];
tags.forEach(function(tag) {
var res = tag.match(re);
console.log(res[2] || res[3]);
});
答案 1 :(得分:0)
也许创建一个“虚拟”img DOM元素,然后从中提取src?
类似的东西:
(function (window, document, $, undefined) {
'use strict';
$(document).ready(function () {
$('#myLink').trigger("click");
});
})(window, document, jQuery);