2010-04-19 4 views
-1

Rad 소프트웨어 정규 표현식 디자이너에서 다음 정규 표현식이 올바르게 작동합니다.자바 스크립트의 명명 된 캡처 문제 정규 표현식

param\s+name\s*=\s*"movie"\s+value=\s*"(?<target>.*?)" 

이제 JavaScript에서 어떻게 작동하는지 궁금합니다. 그것은 "목표"부분에 대해 불평을 계속합니다. 유효성을 검사하고 YouTube에서 소스 코드를 가져 오는 중입니다.

<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/ueZP6ifzqMY&hl=sv_SE&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ueZP6ifzqMY&hl=sv_SE&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object> 

어떻게이 정규식을 자바 스크립트에서 사용할 수 있습니까?

+7

다음은 HTML 구문 분석을 위해 javascript를 사용하지 않는 것이 좋습니다. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 –

답변

3

자바 스크립트에는 명명 된 캡처가 없습니다. 당신은 이미 당신의 웹 사이트에 jQuery를 같은 JS 프레임 워크가있는 경우

param\s+name\s*=\s*"movie"\s+value=\s*"(.*?)" 
3

를 사용하여, 내가 대신 정규 표현식을 사용하는 것이 좋습니다 : 순수 DOM 자바 스크립트와 비슷한 작업을 수행하는

var movieUrl = $(your_html).find("object param[name=movie]").attr("value"); 
// "http://www.youtube.com/v/ueZP6ifzqMY&hl=sv_SE&fs=1&rel=0" 

있습니다 방법 (있는 경우 프레임 워크가 없음). 그들은 정규 표현식보다 약간 더 많은 코드를 생성하지만 유지하기 쉽고 실패 할 가능성은 적습니다.

+0

고마워, 나는 이것을 줄 것이다. 규칙적인 표현처럼 안전하지는 않지만 업무를 수행합니다. – jinxen

+1

@user : "정규 표현식만큼 안전하지 못합니다"라고 웃게했습니다. 이것은 ca입니다. 정규 표현식만큼 안전하지 않은 횟수는 1000 회입니다. 적어도. * 정규 표현식이 HTML을 얼마나 처리 할 수 ​​있는지에 대한 현실적인 확인을 원할 수 있습니다. – Tomalak

+0

어쩌면 그렇게, 무례 할 필요가 없습니다 :) 대답을 주셔서 감사합니다. – jinxen