Using window.location.pathname I get "/Mobile/Evol/12-20-2011".
Using Javascript, how could I drop off everything after "Evol/" so that I get "/Mobile/Evol/"?
You can use a combination of the substring()
and lastIndexOf()
functions to easily cut off everything after the last /
:
uri = "/Mobile/Evol/12-20-2011";
newUri = uri.substring(0, uri.lastIndexOf('/'));
as @josh points out if there are more directories after "/Evol", this fails. You can fix this by searching for the string 'Evol/' then adding its length back to the substring end:
dir = "Evol/";
newUri = uri.substring(0, uri.lastIndexOf(dir) + dir.length);
Chrome console gives me this output:
> uri = "/Mobile/Evol/12-20-2011";
"/Mobile/Evol/12-20-2011"
> dir = "Evol/";
newUri = uri.substring(0, uri.lastIndexOf(dir) + dir.length);
"/Mobile/Evol/"
Just use "split" function in JavaScript string,
var url = '/Mobile/Evol/12-20-2011';
var tokens = url.split('/');
var reqURL = token[0] + '/'+ token[1] ;
Of course the URL format must be the same some_string/some_string/some_string
var str = window.location.pathname;
const sub = "Evol/";
var locEvol = str.indexOf(sub);
var endIdx = locEvol + sub.length;
var beginStr = str.substring(0, endIdx);
// beginStr contains the desired substring
Assuming you want to cut off any query and fragment completely:
url.replace(/\/Evol\/[^?#]*(?:[?#].*)?$/, '/Evol')
To break this regex down:
\\/Evol\\/
matches the literal text "/Evol/"
. The \\
's are necessary since //Evol/...
would be a line comment, and a /
elsewhere in a regex ends the regex. [^?#]
matches anything except a query or fragment delimiter (?:...)?
just makes something optional[?#].*
matches a query or fragment start followed by any number of non-whitespace chars $
forces the match to reach the end of the input. One Liner:
match.url.split("/").slice(0,-1).join("/")
let array1 = "/first/second/third/fourth"; let array2="posts/stories/1234"; console.log("Result=",array1.split("/").slice(0,-1).join("/")); console.log("Result=",array2.split("/").slice(0,-1).join("/"));
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.