Javascript でファイル名の文字列から拡張子を抽出するにはどうすればいいですか? [重複] 質問する

Javascript でファイル名の文字列から拡張子を抽出するにはどうすればいいですか? [重複] 質問する

変数内のファイルのファイル拡張子を取得するにはどうすればよいですか? たとえば、1.txtというファイルがある場合、そのtxtの部分が必要です。

ベストアンサー1

次のすべての入力で機能するバリアント:

  • "file.name.with.dots.txt"
  • "file.txt"
  • "file"
  • ""
  • null
  • undefined

だろう:

var re = /(?:\.([^.]+))?$/;

var ext = re.exec("file.name.with.dots.txt")[1];   // "txt"
var ext = re.exec("file.txt")[1];                  // "txt"
var ext = re.exec("file")[1];                      // undefined
var ext = re.exec("")[1];                          // undefined
var ext = re.exec(null)[1];                        // undefined
var ext = re.exec(undefined)[1];                   // undefined

説明

(?: # 非キャプチャグループの開始
  \。 # 点
  ( # キャプチャグループの開始 (実際の拡張子をキャプチャ)
    [^.]+ # ドット以外の文字を複数回
  ) # キャプチャグループの終了
)? # 非キャプチャーグループを終了し、オプションにする
$ # 文字列の末尾にアンカー

おすすめ記事