【问题标题】:Regular Expresion find space and bracket from fileName without extension正则表达式从没有扩展名的文件名中查找空格和括号
【发布时间】:2020-12-21 05:18:25
【问题描述】:

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

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

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

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

结果或预期:

filename = "excluder-version-1.pdf"

【问题讨论】:

  • 示例:filename1.replace(/\s+/, '-').replace(/\((\d+)\)/, '-$1')

标签: javascript node.js reactjs regex regexp-replace


【解决方案1】:

您可以使用正则表达式 [^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)

【讨论】:

    【解决方案2】:

    你可以试试!

    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);

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多