저는 업무용 사이드 프로젝트로 Javascript 북마크 릿을 작성하고 있습니다 (매우 초보자 용으로 작성하지 마십시오).내 정규식이 잘못 된 곳이 확실하지 않습니다.
테이프에서 재생 된 것을 제외하고는 cnn.com
성적을 검색하고 라이브 게스트의 이름과 제목을 선택합니다.
NAME, TITLE:
형식과 일치하는 모든 것을 스캔하여 정규 표현식을 사용하여 다음
BEGIN VIDEO CLIP
및
END VIDEO CLIP
사이에 텍스트를 제거
replace()
및 정규식을 사용하고, 사이트를 잡아이 작업을 수행합니다. 그것은 일부 성적표의 매력처럼 작동하고 다른 사람들에게 비참하게 실패합니다. 예를 들어
(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에 적용될 때, 그것은 여러 라이브 손님이있다하더라도, 호스트 (피어스 모건)의 이름을 경고 : 여기에 내 코드입니다. 그것은 내 정규식인가? 나는 Regexr에서 테스트를 해왔지만, 내가 말할 수있는 한, Javascript에서는 불법적 인 것을 사용하지 않는다.
다음의 성적표 중 하나를 사용해야합니다 : http://transcripts.cnn.com/transcripts.
우선 + 난 아무것도 일치 그들이 모두 대문자로되어 있기 때문에'/ [AZ] +, [A-Z0-9] + :/g'와 같은 것이 맞을 것 같아요. – srosh
그리고 [regex.exec] (https : //developer.mozilla .org/ko-ko/docs/JavaScript/Reference/Global_Objects/RegExp/exec) – srosh