JavaScript funkcja podobna do preg_match

0

Czy istnieje w JS jakaś funkcja podobna do phpowego preg_match?
Chciałbym wydobyć z linka np:

numer v=5n8EWqHo_QQ
W php zrobiłem to tak ale chciałbym w JS po zmianie jakiegoś pola w formularzu od razu wyświetlić miniaturkę filmu.

Część formularza:

<input  class="rejestr" name="link_film" id="link_film" size="50" onChange="show_photo(this)"/><br/>

JS

<script type="text/javascript">
	function show_photo(link)
	{
		
	}
</script>

php:

if (preg_match('/\?v=(.+?)&/', $_POST['link_film'], $matches)) 
		{
			print_r("<img class='image_film' width='120px' src='http://img.youtube.com/vi/$matches[1]/default.jpg' /> </br>");
		}
1
var match = /wyrażenie/.exec(napis);

Jeżeli match będzie nullem, nie udało się niczego dopasować. W przeciwnym wypadku pod indeksami od 1 będziesz miał złapane wartości.

1
Rev napisał(a)
var match = /wyrażenie/.exec(napis);

Jeżeli match będzie nullem, nie udało się niczego dopasować. W przeciwnym wypadku pod indeksami od 1 będziesz miał złapane wartości.

dla mnie /wyrażenie/.exec(napis) to taki trochę yoda-speak
poza tym exec nie działa tak jak opisałeś - jeżeli chce dostać kolejne przypasowania to musi wywołać kolejny raz /wyrażenie/.exec na tym samym obiekcie regexp

var id = link.match(/\?v=([\w_-]+)/);

jeżeli chcesz mieć więcej niż jedno przypasowanie użyj przełącznika /g

napis.match(/wyrażenie/g);
0

exec w 100% zaspokoił moje potrzeby ;).
Mam tylko pytanie jak mógłbym z takiego linku pobrać v=(to co chcę pobrać)

Mam coś takiego ale zwraca mi tylko jeden znak po v= a nie wiem jak ustawić żeby pobierało mi od tego momentu do końca stringa.

patt=/\?v=(.+?)/;
result=patt.exec(str);
alert(result);
0
var s = "http://www.youtube.com/watch?v=evYQru9upwQ";
var t = s.match(/[\?|&]v=([0-9a-zA-Z_\-]+)/);
if (t) {
  alert(t[1]);
}
else {
  alert('nie ma');
}

ale poprawności całego linka to to nie sprawdzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1