Javascript从路径中获取文件名和类型作为字符串

我有一个文件拖放系统,它将文件的整个路径作为字符串返回C:\Users\alexr\Desktop\filename.type。我可以删除主目录,这样我就剩下Desktop\filename.type. 如何分隔文件路径 ( Desktop) 以等于变量path以及文件名和类型 ( filename.type) 以等于变量type

我想要一个 javascript 或 jQuery 的答案(尽管我怀疑它是否需要)

编辑

预期结果:

少说我有以下路径Desktop\Folder\file.txt

我想要一个path包含的变量Desktop\Folder

和一个变量file包含file.txt

希望这能澄清事情。


慕村225694
浏览 149回答 3
3回答

墨色风雨

const str   = String.raw`Desktop\Folder\file.txt`;const parts = str.split(`\\`);const file  = parts.pop();const path  = parts.slice(0).join(`\\`);console.log(file)console.log(path)注意:我用来String.raw保留正斜杠,你可能不需要这个

慕妹3146593

您可以使用 stringsubstring来获取斜杠的最后一个索引(因为这是一个很好的指示器filename.type。这 \\ 只是为了逃避 \例子:function splitPath(path) {  return {    path: path,    file: path.substring(path.lastIndexOf('\\') + 1, path.length)  };}const path = 'C:\\Users\\alexr\\Desktop\\filename.type';console.log(splitPath(path));

DIEA

您需要像这样分割文件路径,JSON.stringify(str).split("\\");这里不需要改变你的输入,如果你想分割带有反斜杠的字符串,那么使用,.split("\\")片段如下,const str = "Desktop\filename.type";const res = JSON.stringify(str).split("\\");const result = JSON.parse(res).split(',');const path = result[0];const file = result[1];console.log(path);console.log(file);编辑:好吧,这就是我使用 的原因JSON.stringify(),因为字符串有反斜杠,它会忽略后面的下一个字符backslash,因此要获取实际的字符串,这里我使用了,JSON.stringify..您可以在下面的控制台中找到两者之间的区别。const str = "Desktop\filename.type";console.log(str);console.log(JSON.stringify(str))console.log(JSON.stringify(str));当你分割实际的字符串时,.split("\\"),结果将是单个字符串数组..const str = "Desktop\filename.type";console.log(str.split("\\"));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go