【问题标题】:How do I use string.replace with regular expressions如何将 string.replace 与正则表达式一起使用
【发布时间】:2014-01-31 00:01:36
【问题描述】:

我正在尝试使用正则表达式和String.replace从文件名中去除文件扩展名

我正在使用这个正则表达式:/^.*(\..*)/,它应该捕获扩展名,或者至少是 . 之后的所有内容

str.replace(/^.*(\..*)/,""); 只会给我一个空白字符串。

str.replace(/^.*(\..*)/,"");给我".pdf"

小提琴:http://jsfiddle.net/KAK82/

【问题讨论】:

  • 您的文件名中有多少个点?您可以将它们按点拆分并取第一部分吗?
  • @Ryan 该问题的答案不要使用 String.replace。我想知道如何将string.replace 与正则表达式一起使用。剥离文件名是一个可以通过多种不同方式解决的问题。
  • @putvande 我可以,但我不会将string.replace 与正则表达式一起使用。
  • 尝试使用regex101.com

标签: javascript regex


【解决方案1】:

这里有两个选项:

  • 只匹配扩展名并用空字符串替换:

    str.replace(/\.[^.]*$/, "");
    
  • 匹配整个字符串并捕获除扩展名之外的所有内容,然后替换为该匹配项的内容:

    str.replace(/^(.*)\..*$/, "$1");
    

【讨论】:

    【解决方案2】:

    您需要(使用(.*))捕获文件的第一位,而不是扩展名本身:

    var string = "CommercialTribe - Copy (14).pdf"
    var re = /^(.*)\..*/;
    console.log(string.replace(re,'$1'));
    
    // Output: "CommercialTribe - Copy (14)"
    

    Fiddle

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 2016-12-29
      • 2011-06-19
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多