For example, assuming that x = filename.jpg
, I want to get filename
, where filename
could be any file name (Let's assume the file name only contains [a-zA-Z0-9-_] to simplify.).
I saw x.substring(0, x.indexOf('.jpg'))
on DZone Snippets, but wouldn't x.substring(0, x.length-4)
perform better? Because, length
is a property and doesn't do character checking whereas indexOf()
is a function and does character checking.
Not sure what would perform faster but this would be more reliable when it comes to extension like
.jpeg
or.html
Another one-liner:
This works, even when the delimiter is not present in the string.
Can also be used as a one-liner like this:
EDIT: This is a more efficient solution:
I don't know if it's a valid option but I use this:
It's not just one operation I know, but at least it should always work!
Though it's pretty late, I will add another approach to get the filename without extension using plain old JS-
path.replace(path.substr(path.lastIndexOf('.')), '')