我正在尝试删除部分图片名称以创建缩略图。
图像名称是动态创建的,即HG57JWY_0.jpg,HG57JWY_1.jpg,HG57JWY_2.jpg。我设法删除了.jpg:
var imageName = $('#slider1 li img').prop('src').match(/(\w*)\.\w{3,4}$/)[1];
我的问题是我无法弄清楚如何删除“_0”
return '<img src="sample-img/'+ imageName +'_' + [i -+ 1] + '.jpg">';
这会生成HG57JWY_0_0.jpg
我是怎么做到的?
编辑: 忘记提到大图像和拇指在不同的文件夹中。 所以我用src = http://mydomain.com/sample-img/imagename.jpg
在一个占位符中显示大图像我将拇指放在一个带有src = http://mydomain.com/sample-img-thumb/imagename.jpg
的列表中编辑2:
感谢Alexander,我使用了原始代码
var imageName = $('#slider1 li img').prop('src').match(/(\w*)\.\w{3,4}$/)[1];
并添加了他的.split(“_”)[0]
var imageName = $('#slider1 li img').prop('src').match(/(\w*)\.\w{3,4}$/)[1].split("_")[0];
这使得整个图像src即http://mydomain/imageFolder/image_1.jpg
,并仅返回“图像”。
然后我能够使用我想要的任何路径
return '<img src="sample-img/'+ imageName +'_' + [i -+ 1] + '.jpg">';
刚刚用我需要的东西改变了样本img /。
答案 0 :(得分:4)
使用split
。
var imageName = $('#slider1 li img').prop('src').split("_")[0];
<强>更新强>
您可以在比赛中使用split
:
var imageName = $('#slider1 li img').prop('src')
.match(/(\w*)\.\w{3,4}$/)[1]
.split("_")[0];
或者,修改正则表达式(如Dave Rager的答案中所示)以排除模式_number
的匹配:
var imageName = $('#slider1 li img').prop('src').match(/(\w+)_\d+\.\w{3,4}$/)[1]
答案 1 :(得分:1)
如果图像名称保证包含“_x”,请尝试:
var imageName = $('#slider1 li img').prop('src').match(/(\w*)_\d+\.\w{3,4}$/)[1];
答案 2 :(得分:1)
$('#slider1 li img').prop('src', function(i, value) {
return value.substr(0, value.indexOf('_'));
});
答案 3 :(得分:0)
var imageName = $('#slider1 li img').prop('src').match(/(\w*)(_[0-9]+)\.\w{3,4}$/)[1];