1

Twitter では、たとえばツイートにリンクを投稿すると、http://stackoverflow.com/questions/8699459/get-title-content-via-link-in-rails

URL は自動的に短い URL に変更されます。 ここに画像の説明を入力

対応する 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でこれにどのようにアプローチすればよいですか?

どうもありがとう!!!

4

1 に答える 1

0

これがあなたが探しているものか、少なくともそれに近いものだと思います。

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

要するに; これは protocol:// を無視し、「.」で終わるすべての文字列を取ります。(サブドメインの場合)「$」(文字列の末尾)または「/」のいずれかで示される最後の項目(「com」の場合もあれば、「co.uk」のように「uk」の場合もある)に到達するまで英数字の文字列。結果の文字列で、innerHTML または表示されたコンテンツの値を置き換えます。

たとえば、「http://test.couch.com/333/fire」は「test.couch.com/333」になります。

編集:私が説明したことだけを追加する必要があります

A-Za-z0-9 and -_

「/」までのURLでのみ

A-Za-z0-9

残りのために。

編集 2: Rails コントローラーでの使用

同じ原則が適用されますが、DOM 要素のプロパティであるため、innerHTML はありません。

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

上記の行は、JavaScript と同じことを行うか、少なくとも同じ短縮 URL を作成します。

a ヘルパーを使用する方法を意味する場合:

shortUrl= url.match(/([\w\d\-_]*\.)+(\w*$|\w*\/[\w\d]*)/).first
link_to  shortUrl, url
于 2013-04-24T14:59:38.273 に答える