我要从中提取文件名的路径采用以下形式:
C:\Folder1\Folder2\Folder3\Folder4\Folder5\x.png
这应该给x(我不需要扩展名)。该文件始终是PNG文件。 x可以是1、2、3或4位数字,但不能包含任何其他字符(只能是数字)。
我尝试了一种“手动”方法,效果很好。
function getId(x) {
x = x.slice(0,-4);
var str = "";
var flag = 0;
for(var i = x.length - 1; i >= 0; i--) {
if(!isNaN(x[i])) {
str = x[i] + str;
flag = 1;
} else if(flag == 1) {
break;
}
}
console.log(str);
}
有没有不使用库的简单方法吗?
答案 0 :(得分:3)
您可以在一个捕获组中匹配一个或多个数字。然后使用否定的character class将一个点而不是反斜杠匹配一次或多次,并声明字符串的结尾。
const regex = /(\d+)\.[^\\]+$/;
const str = "C:\\Folder1\\Folder2\\Folder3\\Folder4\\Folder5\\1.png";
console.log(str.match(regex)[1]);
答案 1 :(得分:2)
您可以使用split()
和pop()
获取不带扩展名的文件名:
var file = 'C:\\Folder1\\Folder2\\Folder3\\Folder4\\Folder5\\x.png';
var fileName = file.split(/\\/).pop();
fileName = fileName.split('.')[0];
console.log(fileName);
答案 2 :(得分:0)
不是最好的方法,但是很简单:
const str = 'C:\\Folder1\\Folder2\\Folder3\\Folder4\\Folder5\\t.png';
const getId = path => path.split('\\').pop().split('.')[0];
console.log(getId(str));