2017-02-08 19 views
0

fbのようなリンクプレビュースクリプトで作業しています。ユーザーはリンクを含む可能性がある投稿を作成します。JavaScriptを使用した文字列からのURLの抽出

function link_preview(event) 
{ 
    var replyText = $("#answer_two").val(); 

    if(event.keyCode == 32) 
    { 
     var match = /^(?:[a-z]*?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/i.exec(replyText); 

     if(match!="") 
     { 

      var preview = match[0]; 
     } 
    } 
} 

したがって、ユーザーのタイプのリンクが含まれたテキスト:最後のキーはスペースキーとなっていると、それがそうであった場合、私は私の機能を実行した場合、すべてのkeyUpイベントで私がテストします。リンクが検出されると、プレビューが表示され、このURLから情報が取得されます。ユーザーはこのプレビューを閉じて別のリンクを追加するオプションがあります。これは私の問題が始まる場所です。私は2番目のURLにアクセスすることはできず、最初のURLは無視します。 3番目のURLが追加されると、これはさらに複雑になります。 どのようにこれを行うには誰にも提案がありますか?

答えて

1

あなたはあなたにグローバルパラメータを追加しようとしたことがありはあなたの隣に「G」の正規表現しているあなたの正規表現の末尾に「私」だ、それは次のようなものを見て:

/^(?:[a-z]*?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/gi

この場合、ループする必要のある文字列に複数の一致が得られます。実際の修正で

参照:http://jsfiddle.net/ps1rf1uw

+0

は、あなたの答えをいただき、ありがとうございます。私はそれにGを加えて試しましたが、同じ結果が得られます。 – Dennis

+0

あなたに戻ってくれないことに対する謝罪コンソールが文字列からURLをログアウトするjsfiddleを書きました。 – andrew196

+0

@Dennis – andrew196

関連する問題