I’m struggling to figure out a Regex pattern for JavaScript that will trim a path of it’s preceding and trailing slashes (or hashes/extensions)
For example:
path/ /path /folder/path/ /folder/folder/path /folder/path#hash /folder/path.ext
Should return:
path path folder/path folder/folder/path folder/path folder/path
I felt like I was getting close with the following, but it only selects text without any slashes, hashes, or periods.
^([^\/#.]*)(?![#.\/].*$)/gm
I’m trying to use this for Regex in a vuetify text-field validation, if that’s at all helpful.
Result
I ended up with this regex slug
/^(?![#/.$^=*;:&?()[]{}"'><,@!%`~s])(?!.*[#/.$^=*;:&?()[]{}"'><,@!%`~s]$)[^#.$^=*;:&?()[]{}"'><,@!%`~s]*$/
Advertisement
Answer
This is how it is achieved with no lookbehinds (they are still rejected in Safari :():
^(?![#/.])(?!.*[#/.]$).*
See regex proof. And…
EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
[#/.] any character of: '#', '/', '.'
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
.* any character except n (0 or more times
(matching the most amount possible))
--------------------------------------------------------------------------------
[#/.] any character of: '#', '/', '.'
--------------------------------------------------------------------------------
$ before an optional n, and the end of
the string
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
.* any character except n (0 or more times
(matching the most amount possible))