对于
Windows的Safari浏览器,我遇到了一个奇怪的问题.
我有一个基于jQuery的HTML5 drag-n-drop上传表单.除了Safari之外,它适用于所有浏览器,对于具有特定扩展名的文件,文件名在文件扩展名后填充非ascii字符.
例如,文件example.mov成为example.movçðÆê
文件也被破坏了:它们似乎没有内容.
这是Safari和jQuery / HTML5的已知问题吗?有没有办法过滤掉非ascii字符?
最佳答案 我不确定这是否有用,就像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");