【问题标题】:How to trim and split URL string如何修剪和拆分 URL 字符串
【发布时间】:2016-03-06 22:04:53
【问题描述】:

如何从 JavaScript 中的以下字符串中提取文本 androiddev

https://www.reddit.com/r/androiddev/comments/49878b/droidcon_sf_is_11_days_away/

我尝试从后面修剪它,但我仍然卡在前面。

已经被困了几个小时了,非常感谢任何帮助!

【问题讨论】:

  • String.prototype.trim() 在现代浏览器中可用。
  • @Pointy 但这不仅适用于两边都有空格的情况吗?
  • var value = 'yourstring'.split('/')[4]
  • 它修剪两边的空白。如果一侧或两侧没有空格,则该侧不会发生任何事情。 编辑 哦等等我明白了。你正在修剪非空间的东西。对不起,没关系。
  • 问题的标题具有误导性:PO实际上询问如何从字符串中获取子字符串(是否应该确实是关于修剪文本,然后@Pointy给出了确切的答案)。请更正问题。谢谢和问候,

标签: javascript html url split


【解决方案1】:
var str = "https://www.reddit.com/r/androiddev/comments/49878b/droidcon_sf_is_11_days_away/"
var name = str.split('/')[4]
console.log(name);// androiddev

【讨论】:

  • 在这种情况下,这是一个很好的解决方案,斜线很好地界定了所需的数据。如果数据不是很好地封闭,可能不是最好的解决方案。
【解决方案2】:

使用substr字符串函数:

 var s = "https://www.reddit.com/r/androiddev/comments/49878b/droidcon_sf_is_11_days_away/";
 var ss = s.substr(25, 10);
 alert(ss);

第一个参数是开始提取的索引位置,第二个参数是多少字符。提取。

【讨论】:

  • 当一些过分热心的 Stack Overflow 用户觉得有必要对所有发布正确答案的人投反对票,因为他们觉得他们的答案更正确时,你难道不讨厌吗?
  • 我不反对,但我认为字符串可能有不同的长度
  • 是的,当然不同的字符串会有不同的长度,但我的回答显示了如何提取子字符串,无论您使用什么字符串,这都是相关的。
【解决方案3】:

简单快捷:)

var value = 'yourstring'.split('/')[4]

【讨论】:

  • @isvforall 请参阅问题部分的第三条评论 :)
  • 没关系 :) 最重要的是你的答案也是正确的 :D
【解决方案4】:

当然,您可以使用/ 拆分整个 URL,但我通常发现将 URL 分成已知部分,然后从中提取信息更安全。

这是在浏览器中进行 URL 解析的一种偷偷摸摸的方法

function parseUrl(url) {
  var elem = document.createElement('a');
  elem.href = url;
  return {
    protocol: elem.protocol,
    host:     elem.host,
    hostname: elem.hostname,
    port:     elem.port,
    pathname: elem.pathname,
    hash:     elem.hash
  };
}

那你就可以这样使用了

var url = "https://www.reddit.com/r/androiddev/comments/49878b/droidcon_sf_is_11_days_away/"
parseUrl(url).pathname.split('/')[2]; // "androiddev"

【讨论】:

  • 为什么不只是new URL(url)
猜你喜欢
  • 2018-02-06
  • 2019-01-16
  • 1970-01-01
  • 2010-12-16
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-07
  • 1970-01-01
相关资源
最近更新 更多