2011-07-23 7 views
3

JavaScriptを使用してテキストエリアのURLを検出するにはどうすればよいですか? FacebookであなたはURLを追加することができ、あなたがそれをペースト/入力するとすぐにアドレスを検出します。これはどうすればできますか?私はコールバック関数などについて多くの研究を行ってきましたが、実際のURLをどのように検出できるのだろうかと思っていますか?javascriptコールバック関数を使用してテキスト領域のURLを検出するにはどうすればよいですか?

答えて

9

jQueryを使用している場合は、最も簡単な方法は$ .change()です。

は、フォームフィールドを持っていると言う:

<input id="myField" type="text"/> 

今、あなたがそれに変更イベントを結び、同時に場合はその有効なURLを見つけることができます。

$('#myField').keyup(function() { 
    if(isUrl($(this).val()){ 
     //Show the url in an alert box 
     alert($(this).val()); 
    }else{ 
     //do something if its not a url 
    } 
}); 

その後、あなたはurlをチェックしてブール値を返す関数を持つでしょう。注、私はhere

function isUrl(s) { 
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ 
    return regexp.test(s); 
} 

免責事項からこれを取った:私はジャバスクリプトのいずれかをテストしていませんが、これはあなたがこれを実現できるかの良いアイデアを与える必要があります。

+0

実際のURLは何を表していますか?例えば、私はアラートを持ちたいと思ったら、何と言うでしょうか? 'alert(\\ WHAT HERE?\\); ' –

+0

これでonchangeイベントを使用しないでください...フィールドをぼかす(離​​れる)ときだけトリガーします。 onkeyupを使用する(前の回答を参照) – TMS

3

onkeyupなどのイベントを処理し、正規表現に一致するtextareaの値を検索します。 "ユーザーがテキストエリアにリンクを書きました"のようなイベントをキャッチする特別なコールバックはありません:-)だから、既存のイベントをキャッチして自分で処理する必要があります。

+0

onkeyupが良いでしょう。そうすれば、example.comと入力すると、次のキーが押されたときではなく、最後の 'm'キーが離されたときにそれを捕らえることができます。 – Sid

+0

よろしくお願いいたします。なぜ誰かが落ち込んだ?人々のためのコードを書くことは私たちの仕事ですか?私はヒントが十分かもしれないと思う。 – TMS

+0

私はあなたのコメント、感謝に応じて答えを更新しました。 – TMS

関連する問題