最后使用/获取网址的最后一部分

时间:2016-12-13 17:15:05

标签: javascript string url

我试图获取此网址的最后一部分:

var location = window.location.href.split('/').pop();

我写的代码:

/

将返回一个空字符串'因为term = `label:none author:@root label:~"To+Do" label:~'"test me"' label:~"No Label" label:~'won"t fix' this is a search term` re = /(\w+):([~%@]?)(?:"(.*?)"|'(.*?)'|(\S+))/g; opts = []; term = term.replace(re, function (_, prop, operator, v1, v2, v3) { opts.push({prop, operator, value: v1 || v2 || v3}); return ''; }); opts.push({search: term.trim()}); console.log(opts);之后什么也没有。 我需要至少获得前一部分,所以在这种情况下,登录。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

使用String.replace()(用于替换字符串末尾可能的/)和String.split()函数的解决方案:

var url = 'http://webserver/Foo/login/',
    last_section = url.replace(/\/+$/, '').split('/').pop();
    
console.log(last_section);

答案 1 :(得分:1)

const getLastPartURL = url => {
  const parts = url.split('/');
  const length = parts.length;
  return parts[length - 1] == '' ? parts[length - 2] : parts[length - 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'))

答案 2 :(得分:0)

这应该可以解决问题:

location.pathname.match(/[^/]*(?=\/*$)/)[0]

<强>解释

示例:

对于所有这些网址,输出为login

  • http://webserver/Foo/login
  • http://webserver/Foo/login/
  • http://webserver/Foo/login//