2014-04-23 3 views
0

이 정규식 :이 링크가이 정규식과 일치하는 이유는 무엇입니까?

(youtube.com|youtu.be).*(v=)([a-zA-Z0-9_-]+) 

이 문자열과 일치해야합니다 :

http://www.youtube.com/watch?v=PnqCS4Lvy5E 

는 또한 성공적으로이 문자열을 일치 : 잘못

http://www.youtube.com/watch?v= 

합니다. v = 뒤에 문자열에 링크가 있는지 확인하려면 어떻게해야합니까? *

+0

답변을 업데이트했습니다. – sshashank124

+0

YouTube 동영상 ID'(v) '는 항상 11 자입니다. –

답변

1

사용 + 대신 (v 링크 어디서나 할 수 있기 때문에, 달러 기호를 사용할 수 없습니다) 및 문자열의 시작과 끝을 나타냅니다 ^$를 사용

^https?:\/\/www\.(youtube.com|youtu.be).*(v=)([a-zA-Z0-9_-]+)$

또는을 ,, v= 후 문자의 최소 수를 지정하십시오

^https?:\/\/www\.(youtube.com|youtu.be).*(v=)([a-zA-Z0-9_-]{3,})$ // here 3 is the minimum numbers of accepted chars in the string

데모 : http://regex101.com/r/rP1lN3

+0

Youtube/Vimeo 링크를 수락하도록 수정했습니다. + 선택적 WWW :'https? : \/\/(?: www \.)? ((youtube.com | youtu.be). * (v =) ([a-zA-Z0-9 _-] {3 ,})) | (vimeo.com). * ([0-9] {3,}))' –

관련 문제