我正在尝试删除部分图像名称以创建缩略图。
图像名称是动态创建的,即 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">';
并根据我的需要更改了 sample-img/。
最佳答案
使用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]
关于javascript - 从图像名称中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501705/