2014-01-31 18 views
0

我試圖剝去文件名使用正則表達式和String.replace如何使用與與string.replace正則表達式

我使用這個正則表達式的文件擴展名:/^.*(\..*)/應該抓住擴展,或至少一切後.

str.replace(/^.*(\..*)/,"");只是給了我一個空白的字符串。

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

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

+0

您的文件名有多少個點?你可以通過點分開他們並採取第一部分? – putvande

+0

[正則表達式刪除文件的擴展名]可能的重複(http://stackoverflow.com/questions/1818310/regular-expression-to-remove-a-files-extension) – Ryan

+0

@Ryan該問題的答案不使用與string.replace。我想知道如何在正則表達式中使用'string.replace'。剝離文件名是一個可以通過許多不同方式解決的問題。 – Houseman

回答

1

這裏有兩個選項:

  • 只有符合擴展,並與一個空字符串替換:

    str.replace(/\.[^.]*$/, ""); 
    
  • 匹配整個字符串,捕捉一切,但擴展,然後與匹配的內容替換:

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

您需要捕捉(與(.*)),你的第一個比特文件,而不是擴展本身:

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

// Output: "CommercialTribe - Copy (14)" 

Fiddle