[解決済み] 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('.')
拡張子のないファイルでは失敗することに注意してください。
関連
-
[解決済み】SyntaxError: JSONの位置1に予期しないトークンoがある。
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
jsを使った簡単な照明スイッチのコード
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
Vueのクラススタイルの使い方の詳細
-
Vueの一般的な組み込みディレクティブの説明
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】awaitは非同期関数でのみ有効です。
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
[解決済み] substrとsubstringの違いは何ですか?
-
[解決済み】JavaScriptでファイルの拡張子を取得する方法は?
-
[解決済み] Javascript - ファイル入力コントロールからファイル名を抽出する方法