首页 > 解决方案 > 如何在Node.js中提取字符串的一部分字符串数组?

问题描述

我正在尝试为数组中的每个元素提取字符串的一部分。

我已设法获取所有以 .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
      })
    })

标签: javascriptnode.js

解决方案


简单地使用 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从绝对路径获取文件名?

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']
})

推荐阅读