var segments = window.location.pathname.split('/');
var toDelete = [];
for (var i = 0; i < segments.length; i++) {
if (segments[i].length < 1) {
toDelete.push(i);
}
}
for (var i = 0; i < toDelete.length; i++) {
segments.splice(i, 1);
}
var filename = segments[segments.length - 1];
console.log(filename);
@Ethan's solution was what I needed but I had to make some changes. Namely, the elements in the toDelete array don't take into account that removing an element from the array segments decrease their number. So here are my two pence:
let segments = window.location.pathname.split('/');
let toDelete = [];
for (let i = 0; i < segments.length; i++) {
if (segments[i].length < 1) {
toDelete.push(i);
}
for (let i = 0; i < toDelete.length; i++ ) {
segments.splice(toDelete[i], 1);
for (let j = i; j < toDelete.length; j++ ) {
(toDelete[j])--;
}
}
let filename = segments[segments.length - 1];
console.log(filename);
This will get the page name also removing the extension (like .html or .php) and eventually all get parameters like (?id=1). If you haven't the extension you can remove the replace() part, otherwise replace .EXTENSION with your preferred extension.