1. ホーム
  2. javascript

[解決済み] JavaScript で String からファイル拡張子を切り出すには?

2022-03-23 16:25:33

質問

例えば、以下のように仮定します。 x = filename.jpg を取得したい。 filename ここで filename は任意のファイル名(ここでは簡略化して[a-zA-Z0-9_]を含むファイル名のみとします)です。

私は見た x.substring(0, x.indexOf('.jpg')) について DZoneスニペット とはいえ x.substring(0, x.length-4) より良いパフォーマンス?なぜなら length はプロパティであり、文字チェックを行わないのに対して indexOf() は関数であり、文字チェックを行う。

どのように解決するのですか?

拡張子の長さがわかっている場合は x.slice(0, -4) (ここで4は拡張子の3文字とドット)。

長さがわからない場合 @John Hartsock レジェックス が正しい方法でしょう。

正規表現を使いたくない場合は、こちらを試してみてください(性能は劣ります)。

filename.split('.').slice(0, -1).join('.')

拡張子のないファイルでは失敗することに注意してください。