[ dalibor.sokolov @ 27.07.2012. 21:16 ] @
Učim trenutno JavaScript i stvara mi problem match(). :) Trebam da napravim funkciju koja će preuzeti od korisnika dva stringa. Vrijednost drugog niza je ono šta treba pronaći u prvom nizu i ispisati rezultat.

Eh sada, koliko sam shvatio, string.match(nesto) trazi nesto u stringu i kao vrijednost vraća polje sa vrijednostima što je pronašao, a null ako nije našao. Da li ovaj paramater unutar zagrada može biti varijabla ili je to isključivo neki tekst?

Evo kako sam napisao, ali uvijek mi poziv ove metode vrati null.

function f2() {
var n1=document.getElementById("niz");
var n2=document.getElementById("trazi");
var orgNiz=n1.value;
var trazim=n2.value;
var fin=orgNiz.match(/trazim/ig);
if(fin==null) {
document.getElementById("zadatak2").innerHTML="Nismo pronašli vrijednost koju ste tražili!";
}
else {
document.getElementById("zadatak2").innerHTML="Pronašli smo: "+fin;
}

}

HTML je:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="v1.js"></script>
<title>Stringovi</title>
</head>
<body>
<table>
<tr>
<td>Unesite neki tekst:</td>
<td><input type="text" value="Ovdje upišite tekst" id="niz" size="40" /></td>
</tr>
<tr>
<td>Unesti tekst koji treba pronaći:</td>
<td><input type="text" value="Ovdje upišite šta tražite" id="trazi" size="40" /></td>
</tr>
</table>
<input type="button" value="Traži" id="dugme" onclick="f2();" />
<p id="zadatak2"></p>
</body>
</html>
[ pajaja @ 28.07.2012. 03:31 ] @
Pozdrav,

ako hoces da koristis dinamicke regularne izraze u javascriptu potreban ti je RegExp objekat. Ovaj kod koji si ti trenutno postavio
Code (javascript):

var trazim=n2.value;
var fin=orgNiz.match(/trazim/ig);
 

nece koristiti vrednost iz promenljive trazim, vec ce u stringu pokusati da pronadje podstring "trazim" obzirom da ne zna da se to odnosi na promenljivu. Ako u niz ukucas neki string koji ima u sebi rec "trazim" videces da ce je pronaci. Pokusaj ovako:

Code (javascript):

var trazim = n2.value;
var regex = new RegExp(trazim, "ig");
var fin = orgNiz.match(regex);
 
[ dalibor.sokolov @ 28.07.2012. 08:35 ] @
Hvala puno :D