Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
113
rated 0 times [  117] [ 4]  / answers: 1 / hits: 81616  / 14 Years ago, wed, september 29, 2010, 12:00:00

I need a short basename function (one-liner ?) for Javascript:



basename(/a/folder/file.a.ext) -> file.a
basename(/a/folder/file.ext) -> file
basename(/a/folder/file) -> file


That should strip the path and any extension.



Update:
For dot at the beginning would be nice to treat as special files



basename(/a/folder/.file.a.ext) -> .file.a
basename(/a/folder/.file.ext) -> .file
basename(/a/folder/.file) -> .file # empty is Ok
basename(/a/folder/.fil) -> .fil # empty is Ok
basename(/a/folder/.file..a..) -> # does'nt matter

More From » string

 Answers
4
function baseName(str)
{
var base = new String(str).substring(str.lastIndexOf('/') + 1);
if(base.lastIndexOf(.) != -1)
base = base.substring(0, base.lastIndexOf(.));
return base;
}


If you can have both / and as separators, you have to change the code to add one more line


[#95466] Monday, September 27, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jamila

Total Points: 490
Total Questions: 94
Total Answers: 94

Location: Lebanon
Member since Sun, Aug 2, 2020
4 Years ago
;