添加的非ascii字符仅在Safari浏览器中输入

时间:2011-10-12 22:18:55

标签: jquery html5 file-upload safari non-ascii-characters

对于Windows的Safari浏览器,我遇到了一个奇怪的问题。

我有一个基于jQuery的HTML5 drag-n-drop上传表单。它适用于除Safari之外的所有浏览器,对于具有特定扩展名的文件,文件名在文件扩展名后用非ascii字符填充。

,例如文件 example.mov 变为 example.movçðÆê

此外,文件已损坏:它们似乎没有内容。

这是Safari和jQuery / HTML5的已知问题吗?有没有办法过滤掉非ascii字符?

1 个答案:

答案 0 :(得分:2)

我不确定这是否有用,就像Pekka一样,我不是100%在这里的情况,但如果它足以从字符串中删除'错误'字符,那么你可以使用正则表达式。这个将删除任何非a-zA-Z0-9.的字符。

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

这可能限制性太强(例如,您希望允许非英语类文件名,或者您只想在扩展名后删除字符)。假设问题在于mov和pdf扩展名,并且您只想从扩展名末尾删除上述字符,则可以使用

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