Я не уверен, что это полезно, так как, как и Пекка, я не на 100% в этой ситуации, но если этого достаточно, чтобы убрать «неправильные» символы из строки, вы можете использовать регулярное выражение. Этот удалит любые символы, которые не a-z
, A-Z
, 0-9
или .
.
filename.replace(/[^a-z0-9\.]+/gi, "");
Это может быть слишком ограничительным (например, вы хотите разрешить имена, не похожие на английский, или вы хотите удалять символы только после расширения). Предполагая, что проблема связана с расширениями mov и pdf, и вы хотите удалить только символы, указанные выше, в конце расширения, вы можете использовать
filename.replace(/(\.mov|\.pdf)[^a-z0-9\.]+$/i, "$1");