在JS中剪切字符串的开头和结尾

我有一个像这样的字符串:

test_b0e0bef67-6f0bc-4efb2c-9fee58-a1ffe.pdf

我如何将字符串切成碎片并形成一个数组,如下所示:

['test', 'b0e0bef67-6f0bc-4efb2c-9fee58-a1ffe', 'pdf']

这是一种可能的解决方案,但我认为这不是最优雅的方法。

const firstPart = string2.split('_');
const secondPart = first[1].split('.');
const result = firstPart.concat(secondPart);
评论
  • 南巷*
    南巷* 回复

    You can use RegEx /[_.]/g:

    var string2 = 'test_b0e0bef67-6f0bc-4efb2c-9fee58-a1ffe.pdf'
    
    const result = string2.split(/[_.]/g);
    console.log(result);
  • 静止oo
    静止oo 回复

    You can use ([^_]+)_([^.]+)\.(.+) to:

    • ([^_]+) - Match and capture non-_s
    • _ - Match a _
    • ([^.]+) - Match and capture non-.s
    • \. - Match a .
    • (.+) - Match and capture anything
    const [, ...arr] = 'test_b0e0bef67-6f0bc-4efb2c-9fee58-a1ffe.pdf'.match(/([^_]+)_([^.]+)\.(.+)/);
    console.log(arr);