Skip to content

Instantly share code, notes, and snippets.

@TaniaAlex
Forked from nopjia/splitPath.js
Created March 2, 2021 18:21
Show Gist options
  • Select an option

  • Save TaniaAlex/a208ccd762bcc34c186c477c9778f640 to your computer and use it in GitHub Desktop.

Select an option

Save TaniaAlex/a208ccd762bcc34c186c477c9778f640 to your computer and use it in GitHub Desktop.
The ultimate split path, with a single regex
/**
* The ultimate split path.
* Extracts dirname, filename, extension, and trailing URL params.
* Correct handles:
* empty dirname,
* empty extension,
* random input (extracts as filename),
* multiple extensions (only extracts the last one),
* dotfiles (however, will extract extension if there is one)
* @param {string} path
* @return {Object} Object containing fields "dirname", "filename", "extension", and "params"
*/
var splitPath = function(path) {
var result = path.replace(/\\/g, "/").match(/(.*\/)?(\..*?|.*?)(\.[^.]*?)?(#.*$|\?.*$|$)/);
return {
dirname: result[1] || "",
filename: result[2] || "",
extension: result[3] || "",
params: result[4] || ""
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment