2012-01-19 11 views
1

ファイル名に最後のアンダースコアとそれに続く数字を取り除くにはどうしたらいいですか?ここJavaScript正規表現ファイル拡張子の前に最後のアンダースコアと数字を置き換えます。

は一例であり:

ケース#1

fileName_01.jpg --> fileName.jpg 

ケース#1

file_Name_01.jpg --> file_Name.jpg 

ケース#3

file_Name_.jpg --> file_Name_.jpg 

jsfiddleテストファイル: http://jsfiddle.net/2t3rR/4/

答えて

1
<script language="javascript" type="text/javascript"> 
     function RegexTester() { 
      debugger; 
      var string = 'fileName_01.jpg'; 
      var regex = new RegExp('_[0-9]+\.'); 
      string = string.replace(regex, '.'); //Result - fileName.jpg 

      string = 'file_Name_01.jpg'; 
      string = string.replace(regex, '.'); //Result - file_Name.jpg 

      string = 'file_Name_.jpg'; 
      string = string.replace(regex, '.'); //Result - file_Name_.jpg 
     } 
    </script> 
+0

あなただけの他の回答を再ハッシュ¬¬ – marcio

0

使用パターン/_[0-9]+\./.

strArr[i].replace(/_[0-9]+\./, ".") 

に置き換え、末尾.たちは「へ「file_01_name.jpg」をオンにしていないので、我々は唯一の拡張子の前に番号を交換することを確認するために弱い試みですfile_name.jpg "

「file_01.asdf.jpg」に変換されますが、「file.asdf.jpg」に変換されますが、この種のファイル名はアプリケーションではうまくいきません。 (そうでなければ、ファイル拡張子に正規表現とハードコードを作らなければならないでしょう)。

1

私は先読みを使用する方が良いと思うし、ドットと一致しません:

"file_name_01.jpg".replace(/_\d+(?=\.)/, '') 
1

このなりますどのように?

"fileName_01.jpg".replace(/_\d+(\.[^.]+)$/,"$1") 
関連する問題