私は仕事のサイドプロジェクトとしてJavascriptブックマークレットを書いています(生活のためにコーディングしないでください、非常に初心者です)。
cnn.com
トランスクリプトをスキャンして、テープから再生されるものを除いて、ライブゲストの名前とタイトルを選択します。
これを行うには、サイトを取得し、とregexを使用してとreplace()
の間のテキストを削除し、別の正規表現を使用して形式に一致するすべてのものをスキャンします。一部のトランスクリプトでは魅力のように機能し、他のトランスクリプトでは惨めに失敗します。これが私のコードです:BEGIN VIDEO CLIP
END VIDEO CLIP
NAME, TITLE:
(function () {
var webPage = document.body.innerText;
var tape = webPage.replace(/(BEGIN VIDEO CLIP)([\s\S]*)(END VIDEO CLIP)|(BEGIN VIDEOTAPE)([\s\S]*)(END VIDEOTAPE)/g, "");
var searchForGuests = /[A-Z ].+,[A-Z0-9 ].+:/g;
var guests = tape.match(searchForGuests).join("; ");
alert("Guests: " + guests)
})();
たとえば、http://transcripts.cnn.com/TRANSCRIPTS/1303/05/pmt.01.htmlに適用すると、ライブゲストが複数いる場合でも、ホスト(Piers Morgan)の名前のみがアラートになります。問題は私の正規表現ですか?私は正規表現でテストしてきましたが、私が知る限り、Javascriptで違法なものを使用していません。
次のトランスクリプトのいずれかで機能するはずです:http://transcripts.cnn.com/transcripts。