Me gustaría definir una variable, que incluirá mi nombre de archivo solo sin ninguna extensión. El ejemplo de mi archivo está vinculado a la página index.html y se ve así:
<script src="js/20231014.js" type="text/javascript"></script> <script src="js/20211204.js" type="text/javascript"></script> <script src="js/20230423.js" type="text/javascript"></script>entonces quiero en mi variable solo el "20231014" extraído.
Encontré algunas buenas soluciones aquí:
¿Cómo obtener el nombre del archivo de una ruta completa usando JavaScript?
desde donde probé:
var filename = fullPath.replace(/^.*[\\\/]/, '')pero recibí un error, ese fullPath no está definido . Eso me ha llevado a este enlace ,
donde probé:
var fullPath = FileSystemEntry.fullPath;pero desafortunadamente, el error acaba de cambiar, ese fileSystemEntry no está definido .
Mi otro enfoque fue:
var fileurl = '/js/'.replace(/\.[^.]+$/, '')donde no tengo nada
y finalmente
var fileurl = ventana.ubicación.nombreruta;
donde obtuve solo index.html en su lugar
¿Hay alguna solución rápida para extraer el nombre de archivo dado del enlace basado en el otro directorio?
Este código hará lo que buscas.
/ que aparece en la ruta del archivo./ en la ruta.Solo he realizado una única comprobación. Eso evita imprimir una cadena vacía para el elemento script que hace todo el trabajo, ya que está en el documento y no tiene una fuente.
Deberá agregar la verificación de errores antes de que este código sea bueno.
<head> <script src="js/20231014.js" type="text/javascript"></script> <script src="js/20211204.js" type="text/javascript"></script> <script src="js/20230423.js" type="text/javascript"></script> <script> "use strict"; window.addEventListener('load', onLoad, false); function onLoad(evt) { let scripts = document.querySelectorAll('script'); scripts.forEach(scr => { if (scr.src != '') { let slashPos = scr.src.lastIndexOf('/'); let filename = scr.src.slice(slashPos + 1); filename = filename.replace('.js', ''); console.log(filename); } }); } </script> </head>