He escrito una validación para exceptuar archivos que tienen una extensión de .xls y .xlsx Así que aquí está el código a continuación.
function isFileValid() { var allowedFiles = [".xlsx", ".xls"]; // var allowedFiles = [".xls"]; var fileUpload = document.getElementById("MainContent_fluploadData"); var fileChanged = fileUpload.value !== window.lastUploadedFilename; window.lastUploadedFilename = fileUpload.value; var regex = new RegExp("([a-zA-Z0-9\s_\\.\-:])+(" + allowedFiles.join('|') + ")$"); if (!regex.test(fileUpload.value.toLowerCase()) && fileUpload.value !== '') { alert("Please upload files having extensions: " + allowedFiles.join(', ') + " only."); $('#MainContent_fluploadData').val(''); return false; } } Entonces, incluso si estoy cargando un archivo de Excel válido cuyo nombre es: - SITE_ADDITION (1).xlsx
Por favor recomiende.
Si está buscando expresiones regulares, utilice la siguiente expresión regular para su código.
var regEx = new RegExp("^.*\.xls[xm]?$");//reg ex for excel file console.log(regEx.test("abc.xlsx"));// true console.log(regEx.test("abc.xls"));//true console.log(regEx.test("abc.xlsm"));//true console.log(regEx.test("abc.xlst"));//false console.log(regEx.test("abc.doc"));//false console.log(regEx.test("SITE_ADDITION (1).xlsx"));//trueSi solo le preocupa la extensión, use esto:
function isFileValid() { var allowedFiles = [".xlsx", ".xls"]; var fileUpload = document.getElementById("MainContent_fluploadData"); window.lastUploadedFilename = fileUpload.value; var regex = new RegExp('\\.(' + allowedFiles.join('|') + ')$', 'i'); if (!regex.test(fileUpload.value)) { alert("Please upload files having extensions: " + allowedFiles.join(', ') + " only."); $('#MainContent_fluploadData').val(''); return false; } }Notas:
. si no le importan los caracteres en el nombre del archivo, siempre que no ancle la expresión regular al principio.'\\.(' - si define una cadena y desea tener una barra invertida literal, debe escapar: \\'\\.(' se convierte en \.( en la memoriaRegExp indica que no distingue entre mayúsculas y minúsculasSi, por otro lado, desea restringir los caracteres en el nombre del archivo, use esto:
function isFileValid() { var allowedFiles = [".xlsx", ".xls"]; var fileUpload = document.getElementById("MainContent_fluploadData"); window.lastUploadedFilename = fileUpload.value; var regex = new RegExp('^[a-z0-9\\s_\\.\\-:\\(\\)]+\\.(' + allowedFiles.join('|') + ')$', 'i'); if (!regex.test(fileUpload.value)) { alert("Please upload file with only AZ, 0-9, space, dot, dash, :, () in name, and extension: " + allowedFiles.join(', ')); $('#MainContent_fluploadData').val(''); return false; } }Notas:
^'[\\/\\\\][a-z0-9...