从图像名称中删除字符

时间:2012-09-19 19:39:28

标签: javascript jquery

我正在尝试删除部分图片名称以创建缩略图。

图像名称是动态创建的,即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 /。

4 个答案:

答案 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];