【问题标题】:Auto-shorten the URL in JS or Rails在 JS 或 Rails 中自动缩短 URL
【发布时间】:2013-04-24 13:50:40
【问题描述】:

在 Twitter 中,如果您在推文中发布链接,例如 http://stackoverflow.com/questions/8699459/get-title-content-via-link-in-rails

网址会自动更改为缩短网址:

对应的Html是:

  <span class="invisible">http://</span>
  <span class="js-display-url">stackoverflow.com/questions/8699</span>
  <span class="invisible">459/get-title-content-via-link-in-rails</span>

http://long part 被隐藏)

那么我该如何实现呢?我相信这与JS有关?或者我应该如何使用 Rails 来解决这个问题?

非常感谢!!!

【问题讨论】:

标签: javascript jquery ruby-on-rails


【解决方案1】:

我认为这就是您正在寻找或至少接近它的东西。

aHref.innerHTML = aHref.match(/([\w\d\-_]*\.)+(\w*$|\w*\/[\w\d]*)/)[0];

简而言之;这将忽略协议:// 并采用以“。”结尾的每个字符串。 (对于子域)直到它到达最后一项(可以是“com”,也可以是“uk”,如“co.uk”),由“$”(字符串结尾)或“/”表示一个字母数字字符串。使用生成的字符串替换 innerHTML 或显示的内容值。

例如:“http://test.couch.com/333/fire”将变为“test.couch.com/333”

编辑:我应该补充一点,我只考虑了

A-Za-z0-9 and -_

在 url 中直到 "/" 并且只有

A-Za-z0-9

剩下的。

编辑 2:在 Rails 控制器中使用

同样的原则也适用,但没有 innerHTML,因为它是一个 DOM 元素属性

 url = url.match(/([\w\d\-_]*\.)+(\w*$|\w*\/[\w\d]*)/).first

上面的行将与 javascript 执行相同的操作,或者至少会创建相同的缩短 url。

如果您的意思是如何与助手一起使用:

shortUrl= url.match(/([\w\d\-_]*\.)+(\w*$|\w*\/[\w\d]*)/).first
link_to  shortUrl, url

【讨论】:

  • 这就是我要找的。我如何在控制器中使用它?我的意思是,在推特中,链接在发布时会自动缩短,但我不知道这样做
  • @cqcn1991 我添加了一个在 Rails 控制器中使用的示例,尽管它与原始示例几乎相同。
猜你喜欢
  • 1970-01-01
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多