让我们说我有:如何使用jQuery获取图像名称?
<img src='static/images/banner/blue.jpg' />
使用jQuery,我怎么能拿blue
数据?
如果我使用$('img').attr('src')
,我可以得到整个URI。在这种情况下,删除扩展和所有路径的最佳方法是什么?
让我们说我有:如何使用jQuery获取图像名称?
<img src='static/images/banner/blue.jpg' />
使用jQuery,我怎么能拿blue
数据?
如果我使用$('img').attr('src')
,我可以得到整个URI。在这种情况下,删除扩展和所有路径的最佳方法是什么?
这里有几个问题 - 本地文件可能会在路径名中使用其他斜杠('\'),而某些文件名可能会定义散列或搜索尾,或者没有扩展名。
String.prototype.filename=function(extension){
var s= this.replace(/\\/g, '/');
s= s.substring(s.lastIndexOf('/')+ 1);
return extension? s.replace(/[?#].+$/, ''): s.split('.')[0];
}
console.log($('img').attr('src').filename());
正则表达式将是你最好的朋友在这里......
var filename = fullUri.replace(/^.*?([^\/]+)\..+?$/, '$1');
var src = $('img').attr('src').split('/');
var file = src[src.length - 1];
应工作
你明显忘记了摆脱扩展名... – 2013-10-02 22:26:37
var src= $('img').attr('src');
var name = src.match(/static\/images\/banner\/(.*)\.jpg/)[1];
就分割字符串:
var src = $('img').attr('src'); // "static/images/banner/blue.jpg"
var tarr = src.split('/'); // ["static","images","banner","blue.jpg"]
var file = tarr[tarr.length-1]; // "blue.jpg"
var data = file.split('.')[0]; // "blue"
只是一个旁注,这个例子将返回例如:'夏季'从一个叫'summer.2013.jpg'的图像 – 2013-10-02 22:24:26
src = $('img').attr('src');
src_array = src.split('/');
src = src_array[src.length-1];
说我们有:
<img src="path/to/awesome/image/foobar.jpg" />
这就是我们要做的提取文件名:
Array.prototype.filename = function() {
var tmp = this.split('/');
return tmp[tmp.length-1].match(/(.*)\.[\w]+$/)[1];
});
$('img').attr('src').filename();
结果:
console.log(name); // foobar
**我不会建议那个**:在什么情况下'summer.2013.jpg' ??文件名不是'summer',而是'summer.2013' – 2013-10-02 22:22:28
@ RokoC.Buljan但是,旧的问题已更新! – daryl 2013-10-03 15:06:03
@ RokoC.Buljan感谢,固定现在。 – KOGI 2013-10-02 22:36:40
现在它完美了,你只是忘了逃避'/',应该是'(/^.*?([^\]]+)\..+?$/,'$ 1');' – 2013-10-02 22:40:42