我正在尝试为数组中的每个元素提取一部分字符串。
我已经设法获取了所有以.pdf结尾的文件,但是我不知道如何提取文件。
我认为我需要使用正则表达式来完成这项工作,但是,我不确定从哪里开始。
鉴于第一个元素./pdf/main/test1.pdf
,我想返回/test1.pdf
。
请在下面输入我的代码:
glob('./pdf/main/*.pdf', {}, (err, files) => {
console.log(files) // ['./pdf/main/test1.pdf','./pdf/main/test2.pdf' ]
files.map(f => {
// Here I want to extract and return the following output:
// /test1.pdf
// /test2.pdf
})
})
答案 0 :(得分:1)
简单地使用split并获取最后一个值即可
glob('./pdf/main/*.pdf', {}, (err, files) => {
console.log(files) // ['./pdf/main/test1.pdf','./pdf/main/test2.pdf' ]
files.map(f => {
let split = f.split('/'); // ['.', 'pdf', 'main', 'test1.pdf']
return `/${split[split.length - 1]}`; // /test1.pdf
})
})
此外,由于您已经标记了node.js
,并且假定它与文件路径有关,因此可以使用basename
模块的path
函数来执行此操作,请参见此处
nodejs get file name from absolute path?
glob('./pdf/main/*.pdf', {}, (err, files) => {
console.log(files) // ['./pdf/main/test1.pdf','./pdf/main/test2.pdf' ]
files.map(f => `/${path.basename(f)}`); // ['/test1.pdf', '/test2.pdf']
})
答案 1 :(得分:0)
字符串拆分和使用path.basename可能很容易理解。
如果您想知道如何使用正则表达式来提取文件名,则可以尝试以下代码
switch(warrantyComboBox.SelectedIndex)
{
case 0:
warranty = VEHIC_WARR_1;
break;
case 1:
warranty = VEHIC_WARR_2 * vehiclePrice;
break;
}