変数内のファイルのファイル拡張子を取得するにはどうすればよいですか? たとえば、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
説明
(?: # 非キャプチャグループの開始 \。 # 点 ( # キャプチャグループの開始 (実際の拡張子をキャプチャ) [^.]+ # ドット以外の文字を複数回 ) # キャプチャグループの終了 )? # 非キャプチャーグループを終了し、オプションにする $ # 文字列の末尾にアンカー