-1

我的问题仅与 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/, '' );

提前致谢。

4

2 回答 2

3

这应该这样做:

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

例如:

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"
于 2013-05-08T15:24:50.727 回答
1

尝试:

source.replace(/(.+\/[^-]+-[^-]+)(-\d+x\d+)*\.([^\.]+)$/, '$1.$3')
于 2013-05-08T15:14:43.710 回答