2011-12-09 5 views
0

私は、各ビデオの下で人々がコメントできるビデオサイトを持っています。文字列を「分:秒」形式でリンクするJavascript

私は、ユーザーのコメントを解析し、部分文字列を "分:秒"形式で検索するlinkify関数を作成しようとしています。リンクには、その特定の瞬間にビデオを探す関数呼び出しをトリガするクリックイベントがあります。

何か助けていただければ幸いです。これは、(あなたが正しく時間を検証するための正規表現を微調整する必要があります)あなたが始めるのに役立つはずです

+0

すでに何を試してみましたか?正確に何か支援が必要ですか?簡単なヒント:部分文字列を分:秒の形式で検索するには、おそらく正規表現を使用したいと思うでしょう。 – ziesemer

+0

私は既にindexOfを含む何かを試しました。それは醜いとバギーだった。私は正規表現がこれについての最善の方法であると知っているので私はここで尋ねています。 –

答えて

1

function linkify(str) { 
    return str.replace(/(\d{2}):(\d{2})/, "<span onclick='video($1, $2)'>$1:$2</span>"); 
} 

function video(mins, seconds) { 
    mins = window.parseInt(mins, 10); 
    seconds = window.parseInt(seconds, 10); 

    // Do the stuff with the video 
} 

console.log(linkify("Look at the video at 01:23 for something interesting")); 
+0

これは間違いなく良いスタートですが、理想的には、それぞれ2桁の数字があると想定するべきではありません。たとえば、 1:1 1:01 1:10 10:10 123:10 はすべて有効とみなされます。 –

+0

次の正規表現はどうですか:/(\ d +):([0-5] [0-9])/ g'?これにより、任意の桁数に続いて0〜59秒が許可されます。私は 'g'フラグを追加して、* all * timesが(最初のものではなく)一致するようにしました。 – jabclab

+0

_ほとんど。 「秒」の部分が1桁だけの場合(つまり1:1)、これは失敗します。私は1:1と1:01の両方が有効である必要があります。 –

関連する問題