有没有办法通过javascript从图像src url获取数字?
我到处找,找不到我问题的答案。也许我问错问题了 所以,我的问题是:我有一个blogroll,显示最新的帖子图片,我有来自不同平台的网站和博客,我想与我的读者分享,包括WordPress。 大多数图片(缩略图)是方形的,但是来自WP博客的图片有多种尺寸。通过分析图片src,我发现替换url的最后一部分是成功的,我可以使这些图片与其他图片相匹配,而不会影响我的网站设计。:) 例如:有没有办法通过javascript从图像src url获取数字?,javascript,jquery,Javascript,Jquery,我到处找,找不到我问题的答案。也许我问错问题了 所以,我的问题是:我有一个blogroll,显示最新的帖子图片,我有来自不同平台的网站和博客,我想与我的读者分享,包括WordPress。 大多数图片(缩略图)是方形的,但是来自WP博客的图片有多种尺寸。通过分析图片src,我发现替换url的最后一部分是成功的,我可以使这些图片与其他图片相匹配,而不会影响我的网站设计。:) 例如: 您需要使用正则表达式 img = $(this).find('img').attr('src').replace(/w
您需要使用正则表达式
img = $(this).find('img').attr('src').replace(/w=[0-9]+/, 'w=126&h=126&crop=TRUE');
这将匹配:
w=(位数)
[0-9]匹配一个数字
[0-9]+匹配连续数字
因为attr()
只返回第一个匹配元素的给定属性,所以我建议更改(可能很多)元素:
$(this).find('img').prop('src', function(i, src) {
return src.replace(/(w=\d+)$/, '?w=126&h=126&crop=TRUE');
});
(请提供)
如果您需要存储更改图像的引用(如您的问题所述),可以链接get()
以返回数组:
var changedImages = $(this).find('img').prop('src', function(i, src) {
return src.replace(/(w=\d+)$/, '?w=126&h=126&crop=TRUE');
}).get();
参考资料:
/w=[1-9][0-9]*/
而不是/w=[0-9]+/
-任意文本上的regexp永远不会太具体。请注意,这样做的结果是将变量“img”设置为修改后的URL-需要重新分配“src”属性。我让它与您的解决方案一起使用,但必须如下所示:。替换(/w=[0-9]+/,'w=126&h=126&crop=TRUE')@OsvaldoCorreia是的,我刚刚看到这个问题,几秒钟前我刚刚编辑了它。@Brian你需要这样使用:顺便问一下,为什么要使用downvote?函数(i,src{
to函数(i,src){
@Brian:唉,iPad真的不是JavaScript/编码的工具。-/这是一个很好的解决方案,但我需要一些只在一行中工作的东西,因为我发布的这行代码是我的blogroll的大型编码的一部分。@OsvaldoCorreia如果你只想替换那行代码,你仍然可以使用我的答案。如果行数是一个问题,请将呼叫移回用这样的答案回答一行
var changedImages = $(this).find('img').prop('src', function(i, src) {
return src.replace(/(w=\d+)$/, '?w=126&h=126&crop=TRUE');
}).get();