Witam

Potrzebowałbym panowie pomocy bo zawiesiłem się na pewnym zagadnieniu. Mianowicie chodzi o replace.

Może zacznę od przykładu"

mamy sobie ciag :"http://www.youtube.com/watch?v=R6987o-h3JI&feature=g-vrec jakis dowolny tekst http://www.youtube.com/watch?feature=endsc...0xZLF0&NR=1 kolejny ciąg"

chce zamienic w tym ciagu adresy url na linki w taki sposob aby wyciagnąć id filmu czyli to co sie znajduje po ?v= a przed & i zwrocic tekst juz po przetworzenie.

po przetworzeniu miałby wyglądać tak: "Youtube: R6987o-h3JI jakis dowolny tekst Youtube: yvCPH0xZLF0 kolejny ciąg"

teraz co mam..... no więc mam wyrażenie takie :
Kod
replace(/(?:http:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?([^&]+).*/gm,'<a href="http://www.youtube.com/watch?v=$1">Youtube: $1</a>');



działa wszystko ok z wyciaganiem id gdy w stringu jest sam url natomiast gdy string wyglada tak jak na górze to zaczynaja się cuda.....wyciaga id z url i przetwarza url na link jednak wszystko co sie znajduje po spacji pierwszego wystapienia url znika....


nie bardzo moge sobie poradzic z tym wyrazeniem aby poprostu zamianiał w stringu kazde wystapienie url pasujacego do wzorca na link ale zwracal tez elementy nie pasujace do wzorca....


kurcze troche skomplikowanie to opisalem a zagadnienie proste....

bede wdzieczny za pomoc bo juz nie domagam nerwowo