Noh | エンジニア向け情報共有コミュニティ
Signup / Login

JSでファイル名から拡張子を除外するコード

y
yosi2024/07/24 12:36

ファイル名から拡張子を除外するコードを作成してください

  • TSとJSのコードを作成してください
  • ファイル名には複数のドットが入っている可能性があります
A
Answerer AIPowered by gpt-3.5-turbo

TypeScriptの場合:

const filename = "example.file.txt"; const extension = filename.split(".").slice(0, -1).join("."); console.log(extension);

JavaScriptの場合:

const filename = "example.file.txt"; const extension = filename.split(".").slice(0, -1).join("."); console.log(extension);

上記のコードでは、指定されたファイル名を「.」で分割し、拡張子を除外した部分を取得します。このコードは、ファイル名に複数のドットが含まれている場合でも正しく機能します。

y
yosi2024/07/24 12:38

filename.split(".").slice(0, -1).join(".")が返すのは拡張子を除いたファイル名なので変数名がextensionなのはおかしいです

A
Answerer AIPowered by gpt-3.5-turbo

おっしゃる通り、変数名が不適切でした。申し訳ありません。

以下が修正されたコードです:

TypeScriptの場合:

const filename = "example.file.txt"; const fileNameWithoutExtension = filename.split(".").slice(0, -1).join("."); console.log(fileNameWithoutExtension);

JavaScriptの場合:

const filename = "example.file.txt"; const fileNameWithoutExtension = filename.split(".").slice(0, -1).join("."); console.log(fileNameWithoutExtension);

修正後のコードでは、filename.split(".").slice(0, -1).join(".") を使用して、拡張子を除外したファイル名を取得しています。変数名を fileNameWithoutExtension に修正しました。このコードは、複数のドットが含まれている場合でも正しく動作します。

y
yosi2024/07/24 12:42

ファイル名を拡張子とそれ以外に分ける関数を作成してください

A
Answerer AIPowered by gpt-3.5-turbo

以下は、与えられたファイル名を拡張子とそれ以外に分割する関数です。

TypeScriptの場合:

function splitFileName(filename: string): { name: string, extension: string } { const dotIndex = filename.lastIndexOf("."); const name = filename.substring(0, dotIndex); const extension = filename.substring(dotIndex + 1); return { name, extension }; } const filename = "example.file.txt"; const { name, extension } = splitFileName(filename); console.log(name); // 出力: example.file console.log(extension); // 出力: txt

JavaScriptの場合:

function splitFileName(filename) { const dotIndex = filename.lastIndexOf("."); const name = filename.substring(0, dotIndex); const extension = filename.substring(dotIndex + 1); return { name, extension }; } const filename = "example.file.txt"; const { name, extension } = splitFileName(filename); console.log(name); // 出力: example.file console.log(extension); // 出力: txt

これにより、ファイル名と拡張子が分離され、それぞれ nameextension という変数に格納されます。

y
yosi2024/07/24 12:44

より直感的にわかりやすいコードに変更することは可能ですか

A
Answerer AIPowered by gpt-3.5-turbo

もちろんです!以下に示すコードは、より直感的でわかりやすい方法でファイル名を拡張子とそれ以外に分割するものです。

TypeScriptの場合:

function splitFileName(filename: string): [string, string] { const lastDotIndex = filename.lastIndexOf("."); if (lastDotIndex === -1) { return [filename, ""]; } const name = filename.slice(0, lastDotIndex); const extension = filename.slice(lastDotIndex + 1); return [name, extension]; } const filename = "example.file.txt"; const [name, extension] = splitFileName(filename); console.log(name); // 出力: example.file console.log(extension); // 出力: txt

JavaScriptの場合:

function splitFileName(filename) { const lastDotIndex = filename.lastIndexOf("."); if (lastDotIndex === -1) { return [filename, ""]; } const name = filename.slice(0, lastDotIndex); const extension = filename.slice(lastDotIndex + 1); return [name, extension]; } const filename = "example.file.txt"; const [name, extension] = splitFileName(filename); console.log(name); // 出力: example.file console.log(extension); // 出力: txt

このコードでは、lastIndexOf() 関数を使用して最後のドットのインデックスを取得し、その位置を基準にファイル名と拡張子を分割しています。ドットが存在しない場合は、空の拡張子が戻り値として返されます。splitFileName() 関数は、ファイル名と拡張子の値を含む配列 [name, extension] を返します。これにより、name 変数と extension 変数に分割された値を直接代入することができます。

コメントするにはログインが必要です
y
yosi