2016-10-02 15 views
1

ファイルをダウンロードする前にユーザにファイル名を入力させたいと思います。まだ存在していない場合、ファイル名に拡張子を追加してください。

ファイル名を検証するにはどうすればよいですか?ユーザがこれをまだ入力していない場合、拡張子.jpgを追加するにはどうすればよいですか?

myfilename.jpgを入力しても何も追加しないでください。myfilenameを入力すると、.jpgが追加されます。私がmyfilename.を入力すると、jpgが追加されます。

ユーザーが最終的にファイル名filename.jpを使用する可能性があるため、私は、これを正しく制御する方法がわからない、それが悪いUXデザインだ場合、私はfilename.jpg代わりのfilename.jp.jpgにこれを変更した場合、私は知らないのですか?

/^([^.]*)$/m 

に一致した場合、それは意味:

+0

を返さないSHOLDことを、私は、この質問(とにかくその最新の部分)のための*正しい*答えはないと思うから

何が良いですか。個人的には、拡張子を追加してブラウザに残すことはお勧めしません**。 2番目の選択肢は、ファイルタイプによく使用される拡張機能の1つが提供されているかどうかをチェックすることです(例:** .jpg **または**。jpeg **)。置き換えない!)標準拡張(ここでは、**。jpg **)。 – pepak

+0

@mortensenあなたは解決策を試しましたか、解決しましたか? –

答えて

0

には、次の正規表現を試して、それだけで1つのドットを持つ、次に一致はしてみてくださいしない場合

/^([^.]*).jpg$/m 

をの.jpgで終わる、完璧に一致するものを探しますユーザーは拡張子を入れていないので、.jpgを最後に置く必要があります。

それ以外の場合、ファイル名は無効です...私の見解では、正規表現には両方のケースで1つ以上のピリオドを持たないことに注意してください。ピリオドがあればjpgが続きます。任意の期間。 ただし、お客様の選択によって異なる場合があります。別にそれはの主観的な評価に依存していると、ファイル名が無効であるとエラーメッセージが表示

+0

これは非常に劣悪な正規表現です。なぜユーザーはファイル名にドットを使用しないように要求しますか? regexpに '。\。jpe?g $'を単に使う方が良いのではないでしょうか? – pepak

+0

ファイル名に複数のドットが付いていると、ウェブアプリケーションやアップロード機能(主にこの機能が正しく実装されていないため)が問題になることがあります。私はちょうど彼に2つの正規表現を与え、ファイル名が完全であるかどうかを検出するか、またはユーザーが拡張を全く試みなかった –

関連する問題