2011-10-12 62 views
4

我正在面對Windows Safari瀏覽器的一個奇怪問題。僅在Safari瀏覽器中添加了非ascii字符輸入

我有基於jQuery的HTML5拖放正下降上傳表單。它適用於除Safari之外的所有瀏覽器,對於具有特定擴展名的文件,文件擴展名後的文件名使用非ascii字符填充。

例如,文件example.mov成爲example.movçðÆê

同樣的文件被破壞:他們似乎沒有任何內容。

這是一個已知的問題與Safari瀏覽器和jQuery/HTML5?有什麼辦法可以過濾非ASCII字符嗎?

+0

看到一些代碼,你如何處理與服務器端的文件將是有幫助 –

+0

在服務器端,我有一個PHP腳本,它接收帖子值並將其存儲在數據庫中,但問題是用戶已經看到了填充名稱。 – Vasilis

+0

這個Safari在MAC或PC上?可能是導致問題的文件系統本身。你有沒有嘗試過與Safari不同的平臺,看看它是否仍然導致問題? – dSquared

回答

2

我不知道,如果是,像佩卡,我不是100%對這裏的情況,這是非常有用的,但如果它足夠剝去從字符串「錯誤」的字符,那麼你可以使用正則表達式。這人會刪除不a-zA-Z0-9.任何字符。

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

這可能過於嚴格(例如要允許非英語樣的文件名或只想要去除後延字符)。假設問題是MOV和PDF格式的擴展,你只希望從末端延伸如上刪除字符,你可以使用

filename.replace(/(\.mov|\.pdf)[^a-z0-9\.]+$/i, "$1"); 
相關問題