JavaScript - 转换图像源的正则表达式

时间:2013-05-08 15:08:25

标签: javascript regex wordpress mootools

我的问题只与JavaScript正则表达式有关。

我正在使用Mootools JavaScript框架为Wordpress构建一个简单的Lightbox。

Wordpress存储各种尺寸的图片,文件名如下:

'image-50-50x100.jpg'
'image-50-150x100.jpg'
'image-50-1024x698.jpg'
'image-50.jpg'

当用户点击缩略图时,我必须将该图像的来源转换为完整尺寸图像的来源,然后预加载该全尺寸图像。

问题

如何更改字符串:

'http://some-path/image-50-50x100.jpg'
'http://some-path/image-50-150x100.jpg'
'http://some-path/image-50-1024x698.jpg'
'http://some-path/image-50.jpg'

,进入:

'http://some-path/image-50.jpg'

缺少的部分在下面的代码中是准确的正则表达式:

source.replace( /regular-expression/, '' );

提前致谢。

2 个答案:

答案 0 :(得分:3)

这应该这样做:

str = str.replace(/-\d+x\d+/, '');

E.g:

var str = 'http://some-path/image-50-1024x698.jpg';
str = str.replace(/-\d+x\d+/, '');
console.log(str); // "http://some-path/image-50.jpg"

对于您不希望它更改的情况,它不会:

var str = 'http://some-path/image-50.jpg';
str = str.replace(/-\d+x\d+/, '');
console.log(str); // "http://some-path/image-50.jpg"

编辑:您在别处的评论中说过:

  

在极少数情况下,Wordpress用户可能会上传像image-1024x698.jpg这样的图像,然后Wordpress会创建像image-1024x698-300x300.jpg这样的拇指图像

好的,我们在上面添加了\..

var str = 'http://some-path/image-1024x698-300x300.jpg';
str = str.replace(/-\d+x\d+\./, '.');
console.log(str); // "http://some-path/image-1024x698.jpg"

答案 1 :(得分:1)

尝试:

source.replace(/(.+\/[^-]+-[^-]+)(-\d+x\d+)*\.([^\.]+)$/, '$1.$3')