Не-ascii символы добавлены в форму ввода только с Safari Browser - PullRequest
4 голосов
/ 13 октября 2011

У меня странная проблема с браузером Safari для Windows.

У меня есть HTML-форма для перетаскивания, основанная на jQuery. Он отлично работает во всех браузерах, кроме Safari, где для файлов с определенными расширениями имя файла дополняется не-ascii символами после расширения файла.

Например, файл example.mov становится example.movçðÆê

Также файлы повреждены: у них, похоже, нет содержимого.

Это известная проблема с Safari и jQuery / HTML5? Есть ли способ отфильтровать не-ascii символы?

1 Ответ

2 голосов
/ 13 октября 2011

Я не уверен, что это полезно, так как, как и Пекка, я не на 100% в этой ситуации, но если этого достаточно, чтобы убрать «неправильные» символы из строки, вы можете использовать регулярное выражение. Этот удалит любые символы, которые не a-z, A-Z, 0-9 или ..

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

Это может быть слишком ограничительным (например, вы хотите разрешить имена, не похожие на английский, или вы хотите удалять символы только после расширения). Предполагая, что проблема связана с расширениями mov и pdf, и вы хотите удалить только символы, указанные выше, в конце расширения, вы можете использовать

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