Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
La validación de la extensión de archivo no se verifica correctamente en jquery

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.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

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"));//true

about 4 years ago · Juan Pablo Isaza Report

0

Si 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:

  • no necesita verificar los caracteres que conducen al . 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: \\
    • en otras palabras, la definición de cadena '\\.(' se convierte en \.( en la memoria
  • el segundo parámetro del constructor RegExp indica que no distingue entre mayúsculas y minúsculas

Si, 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:

  • la expresión regular debe estar anclada al principio con ^
  • modificar la clase de carácter según sea necesario para los caracteres permitidos
  • por otro lado, en caso de que tenga el nombre completo de la ruta en su nombre de archivo, comience la cadena de expresiones regulares con: '[\\/\\\\][a-z0-9...
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!