Я хочу фильтровать файл загрузчика. Он отлично работает в FireFox, но в Google Chrome всегда отображается недопустимый файл, хотя файл действителен.Регулярные выражения, не работающие в google chrome
function validate() {
var uploadcontrol = document.getElementById('<%=fileupload.ClientID%>').value;
//Regular Expression for fileupload control.
//var reg = /^(([a-zA-Z])|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.jpg|.jpeg|.jpe|.gif|.bmp|.png|.JPG|.JPEG|.JPE|.GIF|.BMP|.PNG)$/;
var reg = /^(([0-9a-zA-Z\^\&\'\@\{\}\[\]\,\$\=\!\-\#\(\)\%\+\~\_ ]))+(.jpg|.jpeg|.jpe|.gif|.bmp|.png|.JPG|.JPEG|.JPE|.GIF|.BMP|.PNG|.dds|.psd|.pspimage|.tga|.thm|.tif|.tiff|.yuv)$/;
if (uploadcontrol.length > 0) {
//Checks with the control value.
if (reg.test(uploadcontrol)) {
return true;
}
else {
//If the condition not satisfied shows error message.
alert("Only Images are allowed!");
return false;
}
}
} //End of function validate.
Любая причина, по которой вы делаете тест, чувствительный к регистру? Вы включаете 'a-zA-Z' в начале, но некоторые расширения файлов допускают только строчные буквы. Если вы добавите флаг 'i' в регулярное выражение, устранит проблему? Как и в: 'var reg =/yourregexhere/i;' (Это также упростит шаблон, поскольку вам не нужно указывать как '.jpg, так и' .JPG' и т. Д.) – nnnnnn
Какое имя файла выполняет это регулярное выражение, ? Можете ли вы привести пример? –
Точка '.' перед расширением файла должна быть экранирована, и все символы в этом символьном классе, отличном от' \] - ', не должны быть экранированы. – Bergi