Валидатор регулярных выражений с контролем загрузки файлов (asp.net) не работает в FireFox

Я использую валидатор регулярных выражений с элементом управления загрузка файлов (Asp.Net), чтобы ограничить загружаемые файлы. Мое регулярное выражение выглядит следующим образом:

^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.wmv|.avi|.mpeg|.MPEG|.mp4|.MP4|.flv|.f4v)$

Он выдает сообщение об ошибке валидатора даже после загрузки нужного файла в Firefox. Но в IE работает нормально.

Кто-нибудь, пожалуйста, помогите мне предоставить совместимый с браузером способ проверки моего контроля загрузки файлов.


person Harun    schedule 15.09.2010    source источник
comment
Можете ли вы привести несколько примеров хороших и плохих строк? Я не могу сказать, что должно делать это регулярное выражение.   -  person Alan Moore    schedule 15.09.2010


Ответы (1)


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

Используйте javascript для проверки вместо валидатора регулярного выражения.

var имя_файла = fupID.value; var ext = имя_файла.подстрока(имя_файла.lastIndexOf('.') + 1);

        if (ext == "wmv" || ext == "WMV" || ext == "avi" || ext == "AVI" || ext == "mp4" || ext == "MP4" || ext == "flv" || ext == "FLV" || ext == "F4V" || ext == "f4v" || ext=="mpg" || ext=="MPG" || ext=="mpeg" || ext=="MPEG" || ext=="mov" || ext=="MOV") {
     // do required code logic here

}

person Harun    schedule 17.11.2010