Javascript 如何从Node.js中的字符串数组中提取部分字符串?

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结尾的文件,但我不知道如何做提取部分

我假设我需要使用正则表达式来完成这项工作,但是,我不确定从哪里开始

给定第一个元素
/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)
}