불편을 끼쳐 드려 죄송합니다. 그러나 여기에 내 딜레마가 있습니다.정규 표현식을 사용하여 Javascript의 단락 텍스트에서 하이퍼 링크를 하나 이상 추출합니다.
단락 텍스트에서 HTML 링크를 식별하는 데 "더 나은"정규 표현식이 있어야합니다 (텍스트에 HTML 링크가 두 개 이상있을 수 있음). 어떻게 모든 링크를 추출하고 자바 스크립트에 앵커합니까? (자바 스크립트)
내 시도는 다음과 같이이다 :
var urlPattern = "(https?|ftp)://(www\\.)?(((([a-zA-Z0-9.-]+\\.){1,}[a-zA-Z]{2,4}|localhost))|((\\d{1,3}\\.){3}(\\d{1,3})))(:(\\d+))?(/([a-zA-Z0-9-._~!$&'()*+,;=:@/]|%[0-9A-F]{2})*)?(\\?([a-zA-Z0-9-._~!$&'()*+,;=:/[email protected]]|%[0-9A-F]{2})*)?(#([a-zA-Z0-9._-]|%[0-9A-F]{2})*)?";
function extractURLs(s) {
return s.match(new RegExp(urlPattern));
}
//s is of type String
//For testing...
var text = "Check this video out http://ww w.youtube.com/watch?v=y3U3R3b1dOg or http://www.youtube.com/watch?v=sX6Vm0MoPCY";
alert(extractURLs(text));
(하이퍼 링크에 공간이 의도적으로 SO에 질문을 게시 할 수 있도록 여기에 추가되었습니다). 결과 : 나는 단지 첫 번째 하이퍼 링크를 얻지 만 두 번째 하이퍼 링크는 얻지 못합니다 .... 아무도 내가 활용할 수있는 비슷하거나 더 좋은 것을 만들었습니까? 사전에
감사합니다. 오히려 매번 정규식을 컴파일하는 것보다, 미리 컴파일
function extractURLs(s) {
return s.match(new RegExp(urlPattern, "g"));
}
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags 이 질문에 대한 답변을 제공해 드릴 것입니다. –
걱정 마세요 ... 전에는 달콤한시를 읽었지만 Alsciende는 저에게 정확한 답을 제공했습니다. –