Javascript 如何从Node.js中的字符串数组中提取部分字符串?
我试图为数组中的每个元素提取字符串的一部分 我已经设法得到所有以.pdf结尾的文件,但我不知道如何做提取部分 我假设我需要使用正则表达式来完成这项工作,但是,我不确定从哪里开始 给定第一个元素Javascript 如何从Node.js中的字符串数组中提取部分字符串?,javascript,node.js,Javascript,Node.js,我试图为数组中的每个元素提取字符串的一部分 我已经设法得到所有以.pdf结尾的文件,但我不知道如何做提取部分 我假设我需要使用正则表达式来完成这项工作,但是,我不确定从哪里开始 给定第一个元素/pdf/main/test1.pdf,我想返回/test1.pdf 请按照下面的代码操作: glob('./pdf/main/*.pdf', {}, (err, files) => { console.log(files) // ['./pdf/main/test1.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
})
})
简单地使用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
,并且假设这与文件路径有关,因此可以使用path
模块的basename
功能来完成此操作,请参见此处
字符串拆分和使用path.basename可能很容易理解 如果您想知道如何使用regex提取文件名,可以尝试以下代码
glob('./pdf/main/*.pdf', {}, (err, files) => {
files.map(f => f.match(/.*(?<filename>\/.+?\.pdf)/).groups.filename)
}
glob('./pdf/main/*.pdf',{},(呃,文件)=>{
files.map(f=>f.match(/.*(\/.+?\.pdf)/).groups.filename)
}
glob('./pdf/main/*.pdf', {}, (err, files) => {
files.map(f => f.match(/.*(?<filename>\/.+?\.pdf)/).groups.filename)
}