常规Expresion从fileName查找空格和方括号,不带扩展名

问题描述

我正在使用javascript,这是我的字符串

let filename1 = "excluder version(1).pdf"

注意:扩展名将是动态的,例如jpg或png

我想用结果替换字符串 如果使用正则表达式该怎么办?

结果或预期结果:

filename = "excluder-version-1.pdf"

解决方法

您可以使用regex [^ a-z0-9] + ,它将用数字替换数字和小字母之外的所有元素。 您也可以使用子字符串获取扩展名,然后再将其添加到最终结果中。

let filename1 = "excluder version(1).pdf"
var extension = filename1.substring(filename1.indexOf('.')+1)
var filename = filename1.substring(0,filename1.indexOf('.'))
filename=filename.replace(/[^a-z0-9]+/g," ").trim().split(" ").join("-")+"."+extension;

console.log(filename)

,

您可以尝试!

let filename1 = "excluder version(1).pdf"
let re = /(\w+)\s(\w+)\((\d+)\)\.(pdf|jpg|png)/;


const matches = filename1.match(re).slice(1);
const newstr = matches.reduce((acc,curr,index) => {
  if (index === matches.length - 1) {
    return acc + '.' + curr;
  }
  return acc + '-' + curr;
});

console.log(newstr);