我的问题只与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/, '' );
提前致谢。
答案 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')