W sumie to Twój kod nie wyłapuje jeszcze dokładnie wszystkich tych nazw zmiennych.
Dopiero poniższy kod działałby tak jak trzeba.
Problem w tym, że dalej zwraca tablicę/obiekt i to w tej chwili 3-elementową. Czyli ten wzorzec pasuje tam aż trzy razy.
A ja chciałbym mieć taki kod, który zwróciłby tylko i wyłącznie samą wartość zmiennej $u.
Przejrzałem wiele kursów regexp, ale w dalszym ciągu nie wiem jak oznaczyć ten ciąg, który ma zostać zwrócony.
Kod
<script>
var str1 = "http://domena.pl/index.php?u=blablbal";
var str2 = "http://domena.pl/index.php?u=1234";
var str3 = "http://domena.pl/index.php?u=bla123bla123";
var str4 = "http://domena.pl/index.php?u=user&test=ala-ma-kota";
var pattern = /http:\/\/domena.pl\/index\.php\?u=(([a-z]|[0-9])+)/;
var result = str4.match(pattern); //podstaw po kolei str[1-4]
alert(result);
</script>
Cytat(zegarek84 @ 22.05.2009, 17:23:13 )

no jesli z kolei nie podoba Ci się tylko to że zmienna jest w tablicy to wystarczy zapisać:
result=result[1]; // i już nie ma result[1] ^^
Nie o to mi chodzi, że mi sie nie podoba. Chodzi o to, że w tym przypadku to jeszcze tak działa i możnaby tak to obejść. Ale na przyszłość chciałbym wiedzieć dlaczego właśnie tak to działa. I jak zrobić to według mojej woli.
Jeśli będę chciał wyciągnąć wiecej niż jeden element z takiego stringa to już nie koniecznie w chwili pisania kodu będę musiał wiedzieć w których indeksach tablicy ukryły się elementy, których szukam.