JS字符串截取问题,怎么去除字符串两头的指定字符,只要中间的某部分?

如题,:
/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg

这段字符串 我怎么只获取图片的名字呢?(不带后缀的)?

阅读 10.2k
8 个回答

"/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg".split('/')[3].split('.')[0]

var a = /^\/Upload\/Image\/(\S+)\.jpg$/
a.exec('/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg')[1]

如果形式固定,直接取连续的,不包括 /. 的 32 个字符就可以了。

(/([^\/\.]{32})/).test('/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg') && (/([^\/\.]{32})/).exec('/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg')[0]

形式不固定,就单独写个函数,按楼上的思路,先按 / 切,再按 . 切:

function getFileBaseName(s) {
  var p = s.split('/');
  return p[p.length - 1].split('.', 1)[0];
}
var getFileBaseName = function(path){
  var regx =  /[^\/]+(?=\.[^\.\/]+$)/i;
  return (path.match(regx)||[])[0];
}
var baseName = getFileBaseName('/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg');
console.log(baseName);
新手上路,请多包涵

function getImageName( path ){

var tempArr = [];
if ( typeof path !== 'string' || path !== 'undefined' ) {
    return ;
}
tempArr = path.split('/');
return tempArr[tempArr.length];

}

var str = "/Upload/Image/f62488ceebe5442ea7454312ae4676eb.jpg"
var i = str.lastIndexOf('/'), j = str.lastIndexOf('.');
var s = str.slice(i+1, j);
console.log(s)

var str = str.slice(0,str.lastIndexOf('.'))

var str = str.slice(0,str.lastIndexOf('.'))

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏