2 votes

Obtenir le nom de fichier à partir de l'URL et supprimer l'extension de fichier

J'ai besoin d'obtenir juste le nom du fichier sans l'extension à partir d'une url et je n'y arrive pas.

Voici l'url en question : https://www.mealenders.com/shop/index.php/shop/solo-pack.html

Voici ce que j'ai essayé :

function () {
 var value={{Page Path}}.split("/");
 return value.reverse()[0];
 }

J'y arrive presque, car cela renvoie "solo-pack.html". Que dois-je faire d'autre pour me débarrasser du ".html" ?

Merci d'avance.

3voto

kyle Points 1110

Vous pouvez faire ce qui suit en utilisant le javascript. Pop renvoie le dernier élément, qui est une chaîne de caractères, et vous pouvez ensuite utiliser la fonction remplacer pour obtenir juste le nom du fichier sans .html à la fin.

function getFilename () {
  return {{ Page Path }}.split('/').pop().replace('.html', '');
}

Je vois que {{ Page Path }} est probablement un langage de templating mais vous pourriez modifier le script ci-dessus, pour obtenir l'URL actuelle et ensuite obtenir le nom du fichier comme ceci.

function getFilename () {
  return window.location.href.split('/').pop().replace('.html', '');
}

En outre, vous pouvez le rendre plus dynamique pour traiter n'importe quelle extension de fichier avec les éléments suivants. Vous devez obtenir l'index de la période en utilisant indexOf et ensuite sous-chaîne du début du nom de fichier jusqu'à la position du point.

function getFilename () {
  var filename = window.location.href.split('/').pop();
  return filename.substr(0, filename.lastIndexOf('.');
}

0voto

curveball Points 2784
function getFileName(url) {
  return url.split("/").pop().split(".")[0];
}
var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html";
console.log(getFileName(url));

0voto

Chris Neve Points 893
var sFilename = "solo-pack.html";
var iIndexOfPeriod = sFilename.indexOf(".");
var sFilenameWithoutExtension = sFilename.substring(0, iIndexOfPeriod);

0voto

Tymek Points 1404

Si vous devez vous débarrasser de tout vous pouvez utiliser l'extension .replace() avec une expression régulière :

var url = "https://www.mealenders.com/shop/index.php/shop/solo-pack.html";

function getFilename (path) {
  return path.toString().split('/').pop().replace(/\.\w+$/, '');
}

console.log(getFilename(url));

Cela changera par exemple test/index.html en index mais index.php.default en index.php et aussi test.name.with.dots.txt -> test.name.with.dots

0voto

Osama Points 2247
function () {
var value={{Page Path}}.split("/");
var fileName= value.reverse()[0].split('.')[0];
return fileName;
 }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X