我正在编写一个 Javascript 书签作为工作的辅助项目(不要以编码为生,非常适合初学者)。
它扫描cnn.com
成绩单并挑选出现场嘉宾的姓名和头衔,不包括从磁带播放的那些。
为此,我抓取该站点,然后使用replace()
and 正则表达式删除 and 之间的文本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)。是我的正则表达式有问题吗?我一直在 Regexr 中进行测试,但据我所知,没有在 Javascript 中使用任何非法内容。
它应该适用于以下任何成绩单:http ://transcripts.cnn.com/transcripts 。