JavaScript: проверить поле формы (расширение изображения) - PullRequest
0 голосов
/ 03 декабря 2011

Я пытаюсь проверить расширение файла в поле ввода type = "file". Но даже если я загружаю правильный файл, это дает мне ошибку. Я читал W3Schools и другие сайты, и я не вижу, что не так с моим кодом:

http://pastebin.com/GwE0aVaf - это оператор IF в нижней части первой функции.

Заранее спасибо.

1 Ответ

2 голосов
/ 03 декабря 2011

Проблема в том, что в операторе if это всегда будет true . Вы получили:

if(fileName.lastIndexOf(".jpg") == -1 || fileName.lastIndexOf(".png") == -1)

И один из них всегда будет правдой, из-за чего все выражение будет правдой. Возможно, вы захотите использовать AND ( && ) вместо OR ( || ).

if(fileName.lastIndexOf(".jpg") == -1 && fileName.lastIndexOf(".png") == -1)

Решает непосредственную проблему, но этот тип проверки всегда будет некорректным, поскольку, если имя файла будет примерно таким, как "c: \ sample.jpg.zip" , оно будет действительным.

Вы должны проверить, находится ли расширение в конце строки, с помощью функции EndWith () или соответствующего Regex.

Подробнее на заканчивается в JavaScript .

...