如何在Node.js中提取一部分字符串?

时间:2019-10-08 01:36:59

标签: 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/test2.pdf' ]
      files.map(f => { 
        // Here I want to extract and return the following output:
        // /test1.pdf
        // /test2.pdf
      })
    })

2 个答案:

答案 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;
}