Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Funkcija replace()

[es] :: Javascript i AJAX :: Funkcija replace()

[ Pregleda: 2148 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Spid3RmaN
Nezaposlen

Član broj: 194192
Poruke: 17
93.86.38.*



Profil

icon Funkcija replace()16.12.2008. u 19:16 - pre 187 meseci
Zanima me da li postoji nekakva univerzalna varijabla koja moze da zameni bilo šta.

Npr:
U html fajlu hoću da zamenim svaki "value='bilo_sta'", pa me zanima šta da koristim umesto "bilo_sta"?

Primer html fajla:
Code:

<html>
<head>
</head>
<body>
<input type="text" value="vrednost1" />
<input type="text" value="vrednost2" />
<input type="text" value="vrednost3" />
</body>
</head>


U primeru iznad, voleo bih da sve tri vrednosti(value="vrednost1", value="vrednost2", value="vrednost3") zamenim(izbrisem) jednom(replace) javascript funkcijom.
Da li neko zna kako to mogu da izvedem?
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-3.sezampro.yu.



+33 Profil

icon Re: Funkcija replace()16.12.2008. u 20:27 - pre 187 meseci
Moram da priznam da ne razumem shta tachno zhelish da postignesh...

Ako hocesh da value vrednosti tih input-a postavish na "nishta", mozhesh npr. svakom od ta tri input-a da dash neki id, npr. polje1, polje2, polje3, a onda u nekoj javascript funkciji da "protrchish" kroz sve njih i resetujesh njihove value atribute, ovako:
Code:

for (var i = 1; i <= 3; i++){
   document.getElementById('polje'+i).value = '';

 
Odgovor na temu

Spid3RmaN
Nezaposlen

Član broj: 194192
Poruke: 17
77.46.208.*



Profil

icon Re: Funkcija replace()16.12.2008. u 22:20 - pre 187 meseci
@Nikola Poša

Nije valjda da sam toliko bio nejasan. Uopšte se ne radi o tome :)
Hoću da izbrišem iz ovog koda sledeće: value="vrednost1", value="vrednost2", value="vrednost3".
Problem je što imam različite vrednosti, one ne moraju da budu vrednost 1, 2 i 3...
Evo primer kako bih ja rešio javaskriptom:
Code:

document.replace(/'value="' + varijabla_koja_menja_vrednosti + '"'/, "")


I onda mi firebug javlja da nije definisana, kao što i nije...
Naravno da ja mogu da dajem vrednosti ovoj varijabli, ali šta ako ja hoću da počistim ceo kod od: value="bilo_koja_vrednost"? Cilj je da mogu da izbrišem svaki value atribut i kad mu ne znam vrednost.
Nadam se da ti je sad jasnije šta želim.
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Funkcija replace()17.12.2008. u 00:41 - pre 187 meseci
Momak ti je dao ok odogovor!
U njegovom kodu imas document.getElementById tako da nauci sta to znaci!

Sa druge strane moze da posluzi i obican reset button ako je poenta samo da value vradis na default vrednost!
 
Odgovor na temu

Spid3RmaN
Nezaposlen

Član broj: 194192
Poruke: 17
93.86.103.*



Profil

icon Re: Funkcija replace()17.12.2008. u 10:43 - pre 187 meseci
@Mister_rap

Jeste, dao je lep odgovor, al' za potpuno pogrešnu stvar... Drugo, nemoj da vređaš ako nisi razumeo moje pitanje!
Nikola hvala na odgovoru, ali uopšte to nisam pitao...

Hajde da postavim ovako.. Učitao sam kod neke druge strane na moju stranu u polje za tekst, i sad ja hoću da iz celog koda izbrišem atribut value, zajedno sa njegovom vrednošću.
U ovom slučaju ne mogu da koristim ništa drugo osim replace(koliko ja znam), zato što se ovaj kod više ne tretira kao kod već kao običan tekst(jer je u polju za tekst...).

Kada bi taj kod imao beskonačno mnogo: value="razlicita_vrednost1", value="razlicita_vrednost2" i tako dalje, kako biste vi sve te vrednosti(ali u polju za tekst su, pa ne moze getElementById, samo preko replace()) zamenili?

Sada dolazi ono što sam ranije pomenuo:

Code:

var textarea = document.getElementById("id_polja").innerHTML;
textarea.replace(/value='/ + promenljiva + /'/, "");


Ovo mi nije uspelo jer promenljiva nije definisana. Pa da li postoji neka promenjiva koja bi mogla da zameni bilo sta?

Nadam se da sam sad bio jasan.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: Funkcija replace()17.12.2008. u 11:23 - pre 187 meseci
Mislim da sam sad ukapirao shta ti hocesh da postignesh... Tebi u stvari treba neki dzoker simbol ili tako neshto koji ce da zameni bilo koji string. Nisam siguran da li ovo shto cu sada da napishem mozhe u JavaScriptu (znam da neshto slichno mozhe u PHP-u), ali probaj da taj deo sa replace napishesh ovako:
Code:

textarea.replace(/value=[a-Z0-9_-]'/, "");

Nikad nisam radio sa regularnim izrazima u JavaScript-u, radio sam ih samo u PHP-u, tako da stvarno ne znam kako ide sintaksa shto se toga tiche. Znam da je preuzeta iz Perl-a i da je dosta rogobatna... :) U tim uglastim zagradama bi trebao da bude skup znakova za koje hocesh da se nadje "poklapanje", a tebi tu treba praktichno bilo koji znak...

btw Ne vidim neku veliku razliku u tome da u input tag-u ne postoji taj atribut value ili je on jednak praznom string-u (value = "")...
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Funkcija replace()17.12.2008. u 13:48 - pre 187 meseci
Iskreno se izvinjavam ako sam te uvredio to mi nije bila namera!

Samo pitanje trebas da formulises jasno, prvo si isao sa input type text pa sad idemo sa textarea...
Na kraju se moze ispostaviti da ti treba nesto deseto :D

Enivej moras koristiti regex za ovo samo sto kod koji je nikola ostavio nece raditi...
Evo ti kod koji bi trebalo da radi...

Code:

<html>
<head>
<title>Replace...</title>

<script type="text/javascript">

function rpl(){
  var field = document.getElementById("my");
  var inp_txt = field.innerHTML;
  
  var replaced_txt = inp_txt.replace(/value='[0-9a-zA-Z\s]+'/gi, "value=''"); 
  field.innerHTML=replaced_txt;
}

</script>
</head>

<body>

<textarea name="my" id="my" rows="20" cols="80">

value='1323'
value='text'
value='hhdhsaihdia'
pa imamo onda
<input type='text' value='neka vrednost' />
<input type='text' value='neka vrednost sdads' />
<input type='text' value='43545' />

</textarea><br />

<a href="javascript:rpl()">replace</a>

</body>

</html>
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Funkcija replace()17.12.2008. u 14:50 - pre 187 meseci
a evo sve to u jednoj liniji jquery-ja:
Code:

$('#my').val($('<div/>').html($('#my').val()).appendTo('body').find('*[value]').each(function(){ $(this).removeAttr('value'); }).end().remove().html());


:)

mada je ovo verovatno sporije od Mister_rap-ovog resenja, a i verovatno nije potrebno da se html ubacuje u DOM, ali me mrzi sad da testiram a ovo ce sigurno da radi...
 
Odgovor na temu

Spid3RmaN
Nezaposlen

Član broj: 194192
Poruke: 17
93.86.103.*



Profil

icon Re: Funkcija replace()17.12.2008. u 18:29 - pre 187 meseci
E hvala svima, to sam tražio
Sada ću da isprobam da li radi, pa ću da javim.

Edit:

Evo probao sam Mister_rep-ovo rešenje i radi odlično, samo da još ponešto pitam

Ovaj deo, što menja vrednosti "[0-9a-zA-Z\s]+"(odlično radi) samo me zanima šta tačno znači ovo "\s", primetio sam da bez njega briše samo jednu reč.

[Ovu poruku je menjao Spid3RmaN dana 17.12.2008. u 19:56 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Funkcija replace()17.12.2008. u 18:58 - pre 187 meseci
\s je separator, space, tab ili vertikalni tab
 
Odgovor na temu

Mister_rap
SE at Viacom

Član broj: 8822
Poruke: 2540
*.dynamic.sbb.rs.

Jabber: mister_rap@jabber.com


+21 Profil

icon Re: Funkcija replace()17.12.2008. u 19:02 - pre 187 meseci
Da bas tako...

Moze to i drugacije da se napise nego mislim da je tako najcitljivije!


Ps.
Trebalo bi da radi i ovo jquery resenje al mislim da je ovo malo vise od 1 linije koda a brzinu treba zanemariti...
 
Odgovor na temu

Spid3RmaN
Nezaposlen

Član broj: 194192
Poruke: 17
93.86.103.*



Profil

icon Re: Funkcija replace()17.12.2008. u 19:15 - pre 187 meseci
Ok, shvatam, kad ima "/s" onda briše i razmak.
@Aleksandar Ružičić
Ovo sa jquery-em nisam isprobao jer iskreno ne znam još kako se to koristi i nisam ništa razumeo(ne volim da koristim ono što ne razumem...).

Hvala još jednom svima na trudu i Nikoli koji je prvi shvatio šta hoću.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Funkcija replace()17.12.2008. u 22:11 - pre 187 meseci
Citat:
Mister_rap:Ps.
Trebalo bi da radi i ovo jquery resenje al mislim da je ovo malo vise od 1 linije koda a brzinu treba zanemariti...

pisao sam to na poslu na 24'' monitoru, tamo je u jednoj liniji, al sad kad citam ovo sa 1200x800 rezolucije vidim da je prelomljeno u 2 reda :)
 
Odgovor na temu

[es] :: Javascript i AJAX :: Funkcija replace()

[ Pregleda: 2148 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.