[英]Extract string from malformed URL using Javascript, based on multiple characters
我有一堆 Wordpress 博客,它们使用 PHP DOM ' scraper ' 从参考页面中提取 html。 它根据站点的 url 生成徽标的路径和所有徽标都已知的固定文件路径。问题是,我们刚刚实现了一个 CDN。
博客上的徽标路径从<img src="http://www.example.com/images/logo.png" />
到<img src="http://www.example.com//cdninfoinalongstring/morecdnstuff/images/logo.png" />
,后者显然不正确。
我需要将 src 更改为:
<img src="//cdninfoinalongstring/morecdnstuff/images/logo.png" />
我熟悉.indexOf()
和.substring()
、 .split()
和.pop()
,但尝试引用多个字符,在这种情况下删除“//”之前的字符串失败。
嗯,你可以这样做
var arr = document.querySelectorAll('img[^=http://www.domain.com]');
for (var i = 0; i < arr.length; i++) {
arr[i].src = arr[i].src.replace(/^http(s)?:\/\/[^\/]+/, "");
}
由于域并不总是为人所知,我尝试了这个并且似乎取得了一些成功:
theLogoPath = $('div.logo a img').attr('src');
theLogoCdnPath = theLogoPath.split("//")[2];
$('div.logo a img').attr('src','//' + theLogoCdnPath);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.