Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
Regular expressions - replace enter sa <br>

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Client-side
View previous topic :: View next topic  
Author Message
dabac



Joined: 30 May 2006
Posts: 57

PostPosted: 18.09.2006 12:39    Post subject: Regular expressions - replace enter sa <br> Add user to your forum ignore list Reply with quote

Buduci da sam totalna daba za regular expressions, da li bi neki znalac htio pomoci sagraditi jednu jednostavniju funkciju?

Naime, sve se odigrava na klijentu, pomocu Javascripta:
Korisnik ispunjava textareu i pritiskom na gumb ne submita se forma, vec se upisani sadrzaj zapisuje u cookie.
Problem nastaje kad korisnik upise text u textareu u vise redaka.
Rijesio sam to bez regexp (koristenjem charCodeAt funkcija i trazenjem kodnih karaktera 13 i 10 i zamjenom istih za <br>, kao i drugih String funkcija), ali bi bilo cistije da koristim regexp, zar ne?

Ono za sto mi treba regexp je inverzna situacija:
Prilikom citanja sadrzaja cookieja i ispisa sadrzaja u textareu, textarea se puni sa stringom koji je krcat sa <br> tagovima.

E, sad bih tu prije toga htio vratiti kodne znakove 13 i 10 umijesto <br>, kako bih u textarei ponovo bio prikazan tekst u vise redaka; ako shvacate sto zelim reci...
Dakle treba mi jedan regexp u Javascriptu koji ce evaluirati taj string.

Unaprijed zahvaljujem!

EDIT:
Upravo sam nasao nesto slicno - doduse za PHP, ali vjerojatno ne bih trebao imati puno problema pretvaranjem u JS:
http://www.mi3dot.org/forum/viewtopic.php?t=7430&highlight=regexp
Pokusat cu to veceras pa javiti rezultat.

No, moja molba jos uvijek stoji zbog prvog dijela problema, dakle pretvaranje newline u <br> pomocu regexpa. Da li Javascript ima neku zgodnu funkciju kao sto je nl2br u PHP-u?
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 18.09.2006 13:46    Post subject: Re: Regular expressions - replace enter sa <br> Add user to your forum ignore list Reply with quote

dabac wrote:
Rijesio sam to bez regexp (koristenjem charCodeAt funkcija i trazenjem kodnih karaktera 13 i 10 i zamjenom istih za <br>, kao i drugih String funkcija), ali bi bilo cistije da koristim regexp, zar ne?

pa ako znaš točno koji niz znakova tražiš (a znaš: 13 i 10) onda ti regexp zapravo ne treba

ja sam mislio da u cookie možeš spremiti bilo kakav string... nisam nikad probao, ali jesi siguran da ne možeš spremiti newline znak unutra?

inače za string replacement koristiš replace() funkciju
Code:
"foo<br>bar".replace('<br>', "\n")
Back to top
View user's profile Send private message Send e-mail Visit poster's website
dabac



Joined: 30 May 2006
Posts: 57

PostPosted: 18.09.2006 13:54    Post subject: Re: Regular expressions - replace enter sa <br> Add user to your forum ignore list Reply with quote

Sulien wrote:

pa ako znaš točno koji niz znakova tražiš (a znaš: 13 i 10) onda ti regexp zapravo ne treba


Pa, trebao bih jer je ovo moje primitivno rjesenje, a kamoli da trazim: kodni znak od < pa kodni znak od b pa kodni znak od r pa kodni znak od > ... Zar nije opcepriznata stvar da su regexpi najbolje rjesenje u tom slucaju?

Sulien wrote:

ja sam mislio da u cookie možeš spremiti bilo kakav string... nisam nikad probao, ali jesi siguran da ne možeš spremiti newline znak unutra?


Ponasa se u Exploreru da newline sprema kao 2 underlinea (__) a Firefox ignorira newline, samo ostavi whitespace umijesto newlinea

Sulien wrote:

inače za string replacement koristiš replace() funkciju
Code:
"foo<br>bar".replace('<br>', "\n")


Question nisam bio svjestan da mogu koristiti Stringovu funkciju replace bez koristenja regexpa!

U svakom slucaju, hvala, probat cu;
a ako netko ima volje sagraditi regexp i dalje je moja molba otvorena
Back to top
View user's profile Send private message
Sulien



Joined: 04 Jan 2004
Posts: 2905
Location: Zagreb

PostPosted: 18.09.2006 20:45    Post subject: Add user to your forum ignore list Reply with quote

dabac, ti ne razumiješ što su regexpi i čemu služe Confused
Back to top
View user's profile Send private message Send e-mail Visit poster's website
dabac



Joined: 30 May 2006
Posts: 57

PostPosted: 18.09.2006 20:50    Post subject: Add user to your forum ignore list Reply with quote

Sulien wrote:
dabac, ti ne razumiješ što su regexpi i čemu služe Confused


Pa ako se ne varam, regular expressions sluze pretrazivanju nekog patterna u stringu a i zamjeni istog... ili ne?

A ako te cudi moje cudjenje da u metodi replace() ne moram koristiti reg.exp., evo zasto (O'Reilly):

replace (regexpression, replaceString)
Returns the new string that results when matches of regexpression parameter are replaced by the replaceString parameter...
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 18.09.2006 22:58    Post subject: Add user to your forum ignore list Reply with quote

pa to i je regular expression koji trazi sve sto pase u pattern "<br>", to sto pattern ne sadrzi nikakve modifiere ne znaci da se ne radi o regular expressionu. isto si mogao napisati
Code:
'Testoar'.replace('ar', '')
i dobiti "Test", a i u ovom slucaju se radi o regular expressionu, jednostavnom, ali i dalje regular expressionu

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
dabac



Joined: 30 May 2006
Posts: 57

PostPosted: 18.09.2006 23:19    Post subject: Add user to your forum ignore list Reply with quote

Aha, I get it: '<br>' je u biti sam po sebi regular expression...

Bez obzira na to, replace('br', "\n") ne radi dobro; napravi zamijenu samo u jednom pojavljivanju, a ostalim redovima ostavlja <br>.

Code:

   var postittext="1<br>2<br>3";
   postittext=postittext.replace('<br>', "\n");
   alert(postittext);


Ispis je:
1
2<br>3
Back to top
View user's profile Send private message
retro_one



Joined: 16 Sep 2003
Posts: 880
Location: DUBRAVA.

PostPosted: 18.09.2006 23:22    Post subject: Add user to your forum ignore list Reply with quote

dabac wrote:
Aha, I get it: '<br>' je u biti sam po sebi regular expression...

Bez obzira na to, replace('br', "\n") ne radi dobro; napravi zamijenu samo u jednom pojavljivanju, a ostalim redovima ostavlja <br>.

Code:

   var postittext="1<br>2<br>3";
   postittext=postittext.replace('<br>', "\n");
   alert(postittext);

treba ti global modifier (ccc sulien Twisted Evil ) mislim da to izgleda ovako:
Code:
"text<br>bla<br><br>bla<br>".replace(/<br>/g, "\n")

_________________
Just your average eccentric programmer.
Back to top
View user's profile Send private message
dabac



Joined: 30 May 2006
Posts: 57

PostPosted: 18.09.2006 23:33    Post subject: Add user to your forum ignore list Reply with quote

O, majstore retro_one!

Vidi se tko zna...
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Client-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group