【问题标题】:How to get last element of url stripping out unwanted characters?如何让 url 的最后一个元素去除不需要的字符?
【发布时间】:2015-04-03 10:46:35
【问题描述】:

我正在尝试捕获 url 的最后一个元素并删除任何不需要的字符,例如下面

http://www.myurl.com/abcs/der/er/..../asdsad/hrllo.shtml#header?query=whatever&....

例如从上面的 URl,我只需要得到 hrllo

var search_param = $(location).attr("href").split('/').pop().replace('#', '');

我想也许是一个正则表达式?文本 hrllo 只能有字母(大写与否)。

【问题讨论】:

标签: javascript jquery regex


【解决方案1】:

如果您的查询字符串包含点或斜线,则应先将其删除。

str.slice(0,str.indexOf('?'));

否则,这个就足够了。

str.slice(str.lastIndexOf('/')+1,str.lastIndexOf('.'));

【讨论】:

  • 问题是如果在散列后有/. 怎么办? https://myurl.com/index3.html#query=twitter.com/search
【解决方案2】:

尝试在哈希处拆分它,像这样 (demo):

var url = [
    "http://www.myurl.com/abcs/der/er/.../asdsad/hrllo1.shtml#header?query=whatever&....",
    "http://www.myurl.com/abcs/der/er/.../asdsad/hrllo2.shtml?query=whatever",
    "http://www.myurl.com/abcs/der/er/..../asdsad/hrllo3.shtml",
    "http://myurl.com/index3.html#query=twitter.com/search"
  ],
  i, left, index, page = [];
for (i = 0; i < url.length; i++) {
  left = url[i].split(/[#?]/g)[0];
  index = left.lastIndexOf('/') + 1;
  page.push(left.slice(index));
}

// result: page = [ 'hrllo1.shtml', 'hrllo2.shtml', 'hrllo3.shtml' ];

【讨论】:

  • 我不能总是确保会有哈希!
猜你喜欢
  • 2023-03-14
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2015-03-16
  • 2013-10-07
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
相关资源
最近更新 更多