假设我有:
<img src='static/images/banner/blue.jpg' />
使用jQuery,我如何获得blue数据?如果我使用$('img').attr('src'),我可以得到整个URI。在这种情况下,删除扩展名和所有路径的最佳方法是什么?
blue
$('img').attr('src')
kognpnkq1#
这里有两个陷阱-本地文件可能在路径名中使用另一个斜杠(''),一些文件名可能定义了哈希或搜索尾,或者没有扩展名。
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());
dw1jzc5e2#
var src = $('img').attr('src').split('/'); var file = src[src.length - 1];
应该可以
busg9geu3#
只需拆分字符串:
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"
0sgqnhkj4#
正则表达式将是您在这里最好的朋友...var filename = fullUri.replace( /^.*?([^\/]+)\..+?$/, '$1' );
var filename = fullUri.replace( /^.*?([^\/]+)\..+?$/, '$1' );
qkf9rpyu5#
假设我们有:
<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
y0u0uwnf6#
src = $('img').attr('src'); src_array = src.split('/'); src = src_array[src.length-1];
vpfxa7rd7#
var src= $('img').attr('src'); var name = src.match(/static\/images\/banner\/(.*)\.jpg/)[1];
7条答案
按热度按时间kognpnkq1#
这里有两个陷阱-本地文件可能在路径名中使用另一个斜杠(''),一些文件名可能定义了哈希或搜索尾,或者没有扩展名。
dw1jzc5e2#
应该可以
busg9geu3#
只需拆分字符串:
0sgqnhkj4#
正则表达式将是您在这里最好的朋友...
var filename = fullUri.replace( /^.*?([^\/]+)\..+?$/, '$1' );
qkf9rpyu5#
假设我们有:
下面是我们如何提取文件名:
结果:
y0u0uwnf6#
vpfxa7rd7#