用于通过"?"拆分 url 的 for 循环



我有一个变量url,它的值如下:'https://xxx?yyy?zzz'

通过for循环,我试图将url拆分为:-https://xxx-yyy-zzz

我做那个除法要归功于(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)方法。

所以,我有以下内容:

let url=https://xxx?yyy?zzz;

if(url.includes("?")) { 
for(var i = 0; i <= url.split("?").length; i++) {
urlTotal = url.split("?")[i] + '?'
}
}

我想做的是加入url的前两个部分,如下所示:https://xxx?yyy.

但我也必须记住,如果url有,例如,5'?',我必须学习前四部分。

例如:let url=https://xxx?yyy?zzz?jjj?hhh

结果应如下:https://xxx?yyy?zzz?jjj

谢谢。

let url = 'https://xxx?yyy?zzz?jjj?hhh';
console.log(url.includes('?')?url.split('?').slice(0,-1).join('?'):url);

或者,使用lastIndexOf:

let url = 'https://xxx?yyy?zzz?jjj?hhh';
console.log(url.includes('?')?url.substring(0,url.lastIndexOf('?')):url);

let str1 = `https://xxx?yyy?zzz`
let str2 = `https://xxx?yyy?zzz?jjj?hhh`
let str3 = `https://stackoverflow.com/`
const parse = (url) => {
if(url.indexOf('?') == -1){
return url
}
let strs = url.split('?')
strs = strs.slice(0,strs.length-1)
return strs.join('?')
}
console.log(parse(str1))
console.log(parse(str2))
console.log(parse(str3))