繁体   English   中英

在js中提取文件名和扩展名

[英]Extract filename and extension in js

需要 JavaScript 中的方法来提取文件名和扩展名。

示例:/ /vagrant/modules/americabuy/tranzilaNotifications/class/../../../a_tranzila/log/tranzila_2018-01-09_08-58-47.json

返回数组: ["tranzila_2018-01-09_08-58-47","json"]

在 Node.js 中

var path = require('path');

function getFilenameAndExtension(pathfilename){
    return [path.parse(pathfilename).name, path.parse(pathfilename).ext];
}

在 JavaScript 中

function getFilenameAndExtension(pathfilename){

  var filenameextension = pathfilename.replace(/^.*[\\\/]/, '');
  var filename = filenameextension.substring(0, filenameextension.lastIndexOf('.'));
  var ext = filenameextension.split('.').pop();
  
  return [filename, ext];

}

结果

getFilenameAndExtension("/vagrant/modules/americabuy/tranzilaNotifications/class/../../../a_tranzila/log/tranzila_2018-01-09_08-58-47.json");
//Result -> ["tranzila_2018-01-09_08-58-47", "json"]

如果文件名有多个“.”,它也能工作。 例如:

getFilenameAndExtension("../log/tranzila.2018-01-09.08-58-47.json");
// Result: ["tranzila.2018-01-09.08-58-47", "json"]

您可以将split()函数与pop()结合使用来获取文件全名(名称 + 扩展名),并使用lastIndexOf()检测文件名和扩展名之间的分隔:

 var str = '/vagrant/modules/americabuy/tranzilaNotifications/class/../../../a_tranzila/log/tranzila_2018-01-09_08-58-47.json'; function fileNameAndExt(str){ var file = str.split('/').pop(); return [file.substr(0,file.lastIndexOf('.')),file.substr(file.lastIndexOf('.')+1,file.length)] } console.log(fileNameAndExt(str));

不需要复杂的事情。 您在 Javascript 中有一个split(" ")方法可以执行您想要的操作。

var str = '/vagrant/modules/americabuy/tranzilaNotifications/class/../../../a_tranzila/log/tranzila_2018-01-09_08-58-47.json';

var file = str.split('/').pop();
var fileAndExtensionArray = file.split(".");  // This is ["tranzila_2018-01-09_08-58-47","json"]

String.prototype.match()解决方案:

 var filepath = '/vagrant/modules/americabuy/tranzilaNotifications/class/../../../a_tranzila/log/tranzila_2018-01-09_08-58-47.json', result = (m = filepath.match(/([^/]+)\\.([^.]+)$/)) && m.slice(1,3); console.log(result);

var filepath='/vagrant/modules/americabuy/tranzilaNotifications/class/../../../a_tranzila/log/tranzila_2018-01-09_08-58-47.json';

var filename=filepath.split("")[filepath.length-1];

var extension=filename.split(".")[filename.length-1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM