4

Windows用のSafariブラウザで奇妙な問題に直面しています。

jQueryに基づくHTML5ドラッグアンドドロップアップロードフォームがあります。Safariを除くすべてのブラウザで正常に動作します。Safariでは、特定の拡張子を持つファイルの場合、ファイル名の後に非ASCII文字が埋め込まれます。

たとえば、ファイルexample.movexample.movçðÆêになります

また、ファイルが破損しています。コンテンツがないようです。

これはSafariとjQuery/HTML5の既知の問題ですか?非ASCII文字を除外する方法はありますか?

4

1 に答える 1

2

Pekkaのように、ここでの状況を100%把握しているわけではないため、これが役立つかどうかはわかりませんが、文字列から「間違った」文字を取り除くのに十分な場合は、正規表現を使用できます。a-zこれは、、、またはA-Zではない文字をすべて削除します。0-9.

filename.replace(/[^a-z0-9\.]+/gi, "");

これは制限が厳しすぎる可能性があります(たとえば、英語に似ていないファイル名を許可したい場合や、拡張子の後の文字のみを削除したい場合)。問題がmovおよびpdf拡張機能にあり、拡張機能の末尾から上記の文字のみを削除したい場合は、次を使用できます。

filename.replace(/(\.mov|\.pdf)[^a-z0-9\.]+$/i, "$1");
于 2011-10-12T22:45:58.160 に答える