Javascript 以/结尾获取url的最后一部分
我正在尝试获取此url的最后一部分:Javascript 以/结尾获取url的最后一部分,javascript,string,url,Javascript,String,Url,我正在尝试获取此url的最后一部分: http://webserver/Foo/login/ 我写的代码是: var location = window.location.href.split('/').pop(); 将返回一个空字符串,因为/之后没有任何内容。 我需要至少获得前面的部分,因此在本例中,请登录 我该怎么做? const getLastPartURL=url=>{ const parts=url.split('/'); 常数长度=零件长度; 返回部分[长度-1]=''?部分[长
http://webserver/Foo/login/
我写的代码是:
var location = window.location.href.split('/').pop();
将返回一个空字符串,因为/
之后没有任何内容。
我需要至少获得前面的部分,因此在本例中,请登录
我该怎么做?
const getLastPartURL=url=>{
const parts=url.split('/');
常数长度=零件长度;
返回部分[长度-1]=''?部分[长度-2]:部分[长度-1]
}
console.log(getLastPartURL('http://webserver/Foo/login/'))
console.log(getLastPartURL('http://webserver/Foo/login'))
console.log(getLastPartURL('http://webserver/Foo/'))
console.log(getLastPartURL('http://webserver/Foo“)
使用String.replace()
(用于替换字符串末尾可能出现的/
)和String.split()
函数的解决方案:
var url='1〕http://webserver/Foo/login/',
最后一节=url.replace(/\/+$/,'').split('/').pop();
控制台日志(最后一节)代码>这应该可以做到:
location.pathname.match(/[^/]*(?=\/*$)/)[0]
说明:
- 是一个字符串,包含首字母
“/”
,后跟
- 返回匹配项的数组
[^/]*
匹配,并且
(?=\/*$)
与斜杠零次或多次匹配
- 始终只有一个匹配项,因此我们使用
[0]
检索它
示例:
对于所有这些URL,输出为login
:
http://webserver/Foo/login
http://webserver/Foo/login/
http://webserver/Foo/login//
尝试.pop().pop()
,但理想情况下不要在结尾处使用/
解析字符串。^没有意识到Magnitude是堆栈溢出。@Jack你不能链接.pop()
,第一个返回字符串。这将在我上次编辑(/\/+$/
)时适用于格式错误的url,例如login////AgainMe-是,它会起作用的。试试看,你会发现这是一个很好的解决方案