フォームに入力されたファイルからファイル名を取得し、不要な詳細を取り除いた後、テキスト フィールドに入力するスクリプトを作成しました。
私がアップロードするすべてのファイルは、キーワードでラベル付けされます
これは Chrome 拡張機能用であるため、X ブラウザーのサポートは必要ありません。
var filename = $("uploaded_data").val().toLowerCase();
filename = filename.replace(/_/g, " ").replace(/-/g, " ").replace("c:\\fakepath\\", "");
type_index[1] = filename.indexOf("red");
type_index[2] = filename.indexOf("blue");
type_index[3] = filename.indexOf("green");
type_index[4] = filename.indexOf("purple");
type_index[5] = filename.indexOf("magenta");
for (i=0 ; i > -1 ; i++ ) {
if (type_index[i] > -1)
{
filename_final = filename.substring(type_index[i]);
break;
}
}
$("#material_title").val(filename_final);
このコードは正常に動作しますが、色をファイル名の一部にしたくありません。たとえば、入力ファイルの名前が「test_red_name_low.jpg」の場合、テキスト フィールドは「name low.jpg」にする必要があります。現在、上記のコードは「red name low.jpg」を出力します。また、ファイル名が「this_is_a_test-blue_happy.jpg」の場合、「happy.jpg」が出力されるはずです。
type_index 配列は最終的に非常に多数の値を保持するため、置換は非常に長く複雑な方法になります。
これを回避する方法について何か提案はありますか?