问题描述
我正在使用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);