Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery获取图像名称?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jQuery获取图像名称?

Javascript 如何使用jQuery获取图像名称?,javascript,jquery,Javascript,Jquery,假设我有: <img src='static/images/banner/blue.jpg' /> 使用jQuery,如何获取blue数据 如果我使用$('img').attr('src'),我可以得到整个URI。在这种情况下,删除扩展和所有路径的最佳方法是什么?Regex将是您最好的朋友 var filename=fullUri.replace(/^.*?([^\/]+)\.+?$/,“$1”) 应该能用的只需拆分字符串: var src= $('img').attr('sr

假设我有:

<img src='static/images/banner/blue.jpg' />

使用jQuery,如何获取
blue
数据


如果我使用
$('img').attr('src')
,我可以得到整个URI。在这种情况下,删除扩展和所有路径的最佳方法是什么?

Regex将是您最好的朋友

var filename=fullUri.replace(/^.*?([^\/]+)\.+?$/,“$1”)

应该能用的

只需拆分字符串:

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"

这里有两个问题-本地文件可能使用路径名中的另一个斜杠(“\”),有些文件名可能定义了哈希或搜索尾部,或者没有扩展名

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());
假设我们有:

<img src="path/to/awesome/image/foobar.jpg" />
结果:

console.log(name); // foobar

我不建议这样做:如果是2013年夏令营,jpg会怎么样??文件名不是
summer
,而是
summer.2013
只是一个旁注,这个示例将从名为
summer.2013.jpg
的图像返回
summer
,现在它很完美,您只是忘记了转义
/
,应该是
(/^.*([^\/]+)\+$/,“$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