7

ファイル拡張子を取得するための次のコードがあります。

filename1 = "a.crudely_formed.document_name.jpg"         
var fileExtension = filename1.substring(filename1.lastIndexOf('.')); 

ここで、拡張子なしでファイル名のみを取得する必要があります。この例でわかるように、ファイル名はユーザーによって乱暴に命名される可能性があるため、lastIndexOf() メソッドを使用する必要があります。これを行う方法を検索しましたが、何も見つかりませんでした。

さらに、ファイル名(拡張子なし)がある場合、これに似たものが必要です

$filename = strtolower(str_replace(array('  ', ' '), '-', preg_replace('/[^a-zA-Z0-9 s]/', '', trim($filename))));

上記の基本的な意味は、すべてのスペースをダッシュ​​に置き換え、z と A から Z の文字とすべての数字のみを許可することです。上記の例では、åöä が aoa に置き換えられています。

jQueryでこれを行う方法に関する提案はありますか?

4

2 に答える 2

18

わかりました、私がこれを使用したファイル名のみを取得するには:

var output = filename1.substr(0, filename1.lastIndexOf('.')) || filename1;

文字の置換を行うには、これを使用しました:

output = output.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-');
于 2012-10-23T12:45:49.877 に答える
4

ファイル名と拡張子を取得するより良い方法があります

fileName = 'upload.png';

ファイル名だけが必要な場合

filename.split('.').shift();

延長のみが必要な場合

filename.split('.').pop();
于 2019-03-12T18:54:03.680 に答える