jquery - 非 ascii 字符仅在 Safari 浏览器中添加表单输入

标签 jquery html file-upload safari non-ascii-characters

我在使用 Windows 版 Safari 浏览器时遇到了一个奇怪的问题。

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

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

文件也已损坏:它们似乎没有内容。

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

最佳答案

我不确定这是否有用,因为像 Pekka 一样,我不是 100% 了解这里的情况,但如果它足以从字符串中删除“错误”字符,那么您可以使用正则表达式。这将删除所有不是 a-zA-Z0-9. 的字符。

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

这可能过于严格(例如,您想要允许非英语类文件名,或者您只想去除扩展名后的字符)。假设问题出在 mov 和 pdf 扩展名上,并且您只想从扩展名末尾删除上述字符,您可以使用

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

关于jquery - 非 ascii 字符仅在 Safari 浏览器中添加表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747271/

相关文章:

javascript - 日期范围选择器为 24 小时范围创建错误的时间值

php - 如何将php-mysql数据与jquery合并淡化数据

javascript - Bootstrap 工具提示不考虑数据放置参数

HTML 和 CSS 我很绝望 - 括号帮助 - CSS 中的 div

jquery - 网页动画css高亮

java - Jersey 我上传文件时无法授权用户

c# - Web 请求/上传在最后失败

javascript - jQuery 选择值

css - 对 img 元素的宽度、高度属性使用百分比会产生什么后果?

asp.net - 系统内存不足异常 : Exception when uploading a file