Загрузка файла с помощью RegularExpressionValidator не работает только с Firefox IE - PullRequest
5 голосов
/ 01 мая 2009

У меня есть FileUpload с RegularExpressionValidator со следующим выражением проверки:

^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.gif|.jpg|.JPG|.JPEG|.GIF|.jpeg|.png|.bmp|.3dm|.3dmf|.ai|.drw|.dxf|.esp|.mng|.png|.ps|.psp|.svg|.tiff)$

Таким образом, я проверяю, что Пользователь загружает только изображения. Но почему-то это не работает, когда я использую Firefox. Почему это так и как я могу обойти проблему?

Ответы [ 5 ]

14 голосов
/ 01 мая 2009

Попробуйте это:

(.*?)\.(jpg|jpeg|png|gif)$
3 голосов
/ 24 июня 2009

Усовершенствование решения DaDa, учитывающего чувствительность к регистру:

^(.*?)\.(((j|J)(p|P)(e|E)?(g|G))|((p|P)(n|N)(g|G))|((g|G)(i|I)(f|F)))$
1 голос
/ 01 мая 2009

Я нашел решение .....

(.*\.([gG][iI][fF]|[jJ][pP][gG]|[jJ][pP][eE][gG]|[bB][mM][pP])$)

Ссылка на ответ

Наслаждайтесь !!!

0 голосов
/ 03 августа 2012

У меня есть решение этой проблемы:

var reg = /([^\s]+(?=.(jpg|gif|png|jpeg)).\2)/gm; 
if (reg.test(uploadcontrol) == false) { 
    alert("Please upload valid image formats(.jpg,.gif,.jpeg and .png)");
}
0 голосов
/ 18 февраля 2010

Он не работает с Firefox v3.x, потому что он не позволяет JavaScript получать полный путь из поля ввода файла, и это конкретное регулярное выражение ожидает увидеть полный путь.

...