Ответ:
Проблема в том, что вы поставили восклицательный знак не в том месте.Попробуйте это:
if (!file.name.match(valid)){
Объяснение:
Восклицательный знак дает логическое значение, противоположное заданному значению.То есть: если что-то «правдивое», оно дает вам false
, а если что-то «ложное», оно дает вам true
.
Вот дополнительная информация о правдивости / ложности, которая является очень важной концепциейво многих языках программирования: https://developer.mozilla.org/en-US/docs/Glossary/Truthy
Ваша переменная valid
является объектом RegEx и всегда будет правдивой.Следовательно, !valid
всегда будет false
.
То, как вы изначально написали свой код, в основном говорит:
Если имя файла соответствует «false»
То, что вы хотите сказать, это:
Если это утверждение ложно: «имя файла соответствует этому RegEx»