2011-12-09 3 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' 플래그를 추가하여 모든 * 시간이 (첫 번째가 아닌) 일치하도록했습니다. – jabclab

+0

_ 거의. "초"부분이 1 자리 숫자 (예 : 1 : 1)이면 여전히 실패합니다. 나는 1 : 1과 1:01이 모두 유효해야합니다. –

관련 문제