Newsgroup: it.comp.lang.javascript
Titolo: ancora sulla manipolazione di stringhe

in asp : replace(request.form("testo"),VbCrLf,"<br>")
esiste un'istruzione analoga in js, che intercetta gli "a capo" e li
sostituisce con un "<br>" ?
sp-

alle volte rimango allibito, perche' non sono molto padrone del javascript.
ho risolto cosě, anche se non immaginavo si potesse:
var i=0;
while (htmlcode.indexOf('\n',i)>=0)
    {
    i=htmlcode.indexOf('\n',i);
    htmlcode=htmlcode.replace('\n','<br>');
    i++;
    }
mi sorprende che al loop chi venga passato '\n' anziche' \n
ma allora \n viene interpretato come stringa?
O__o
sp-

 ma allora \n viene interpretato come stringa?
E' un carattere.

a quando l'uso della frusta?
^__^
ciao
sp-

composta da due caratteri: carriage return e line-feed.
Dipende :-)
Windows/Dos: cr lf (0xd, 0xa)
Unix: lf (0xa)
Mac: cr (0xd)
'bye

la regexp di zerO va cosi' come andava ieri, cosi' come l'ho usata.
il codice che ho postato prima e' perche' con le regexp non riesco a stanare
il \n sul testo e tradurlo in <br>, percio' ho usato il loop di prima che,
giurassico quanto vuoi, va.
magari se mi spieghi meglio come far funzionare sta regexp..
ciao
sp-

 Mac: cr (0xd)
Il mio "generalmente" sottintendeva: approfondisci.
Hai fatto bene a precisare.


Quella riferita al tuo caso te l'ho scritta prima, il consiglio era di 
approfondire l'argomento (che e' vasto ma utile: non si riduce al solo 
javascript).
 > a quando l'uso della frusta?
E perche' mai?
Credevo di averti consigliato, non cazziato...

 Credevo di averti consigliato, non cazziato...
ok
sp-

 ^__^
Come ti capisco...

 ma in ogni caso perche' non mi dici cosa non va?
ho una textarea con del testo.
con un doppio click si apre una finestra popup che lancia uno di quegli
editor html online (ma questo e' cross-browser).
faccio le mie correzioni, tre cosette insomma, metto bold ecc..
schiaccio il pulsante "salva", e il innerHTML dell'iframe viene scritto
nella textarea della window.opener.
tutto ok, funziona.
pero' vorrei riportare allo stato originale i ritorni a capo, cioe' avere
del codice html "privo" di <br> ma con il ritorno a capo (la pagina asp che
poi chiamera' questo testo invertira' a sua volta VbCrLf con <br>).
*purtroppo* con IE tutto ok.
firebird invece si comporta stranamente.
se uso la tua regexp non mi caga proprio :-/ e lascia tutti i <br> nella
textarea.
quindi peggio di prima, perche' non solo non sostituisce i <br> con il
ritorno a capo, ma oltretutto mi toglie pure i ritorni a capo originali
della textarea.
percio ottengo:
Allibito, pensai che forse il signore non<br><br> aveva capito cosa gli
stavo dicendo e <b>chiesi</u> di parlare con il responsabile ...
e cosě via.
se invece uso il loop "criminale" i <br> vengono sostituiti correttamente,
ma nella textarea ho dei ritorni a capo "random", cioč in un testo tipo:
Allibito, pensai che forse
il signore non aveva capito cosa gli stavo dicendo
e chiesi di
parlare con il responsabile
ma il fatto e' che non c'e' nessun <br> ne' ritorno a capo, nel testo
originale.
ho notato che se visualizzo il testo dentro un alert, ho tutti gli stessi
ritorni a capo strambi di cui sopra.
ma questo solo su firebird.
sp-

 se invece uso il loop "criminale" i <br> vengono sostituiti correttamente
Il loop "criminale" oltre che scorretto, non ti puo' fisicamente sostituire
i <br>; in quanto il codice che hai postato fa esattamente l'opposto.
A questo punto mi sorge il sospetto che non sia quello il codice a cui ti
riferisci, e che magari mi sono perso un post per strada..
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"Questa e' una lezione difficile, ma importante: Cio' che e' stato, e cio'
che sara', non cambia cio' che e'.
Sta a te decidere poi come prendere questa cosa,se logorarsi per un passato
che non puoi cambiare, invece di prendere tutto il bene che il presente ti
offre." ()

 riferisci, e che magari mi sono perso un post per strada..
vedi sopra sopra :)
ciao
sp-

 vedi sopra sopra :)
Qua invece non e' chiaro. Cosa dovrei vedere? Non mi hai spiegato il
perche' hai scambiato la regexp che faceva il lavoro del ciclo, per
un'istruzione che doveva far tutt'altro.
Come ho detto, e' come se mi mancasse un passaggio. Sembra che tu sia
saltato da un problema, all'altro, senza dir nulla a nessuno. :)
Cmq da quanto m'e' parso di capire, tu adesso avresti da modificare i <br>
in \r\n, quindi devi attuare il processo inverso:
var szText="skjdhfdskj lkdjglfjgfdlkjl<br>x,jfjg
hreughruh<br><br>salkfjsdlk fjkdsjf";
 
szText=szText.replace(/<br>/gi,"\r\n");
 
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 szText=szText.replace(/<br>/gi,"\r\n");
questo funziona.
mi mancava la "i" dopo la "g" :)
a sto punto sorge il problema firebird che ho accennato su
news:e97Zb.344481$_
P.118...@news4.tin.it
 :
sembra che firebird "limiti" la lunghezza di ogni riga a un certo numero di
caratteri, in modo penso illogico.
pero' per farti capire come, penso sia meglio che io metta un esempio
online.
:)
a prestissimo.
ciao
sp-

contando la lunghezza massima di chars che firebird scrive nella textarea,
ne ho trovati al max 76.
76 caratteri.... che sia un caso?
umh....
sp-

http://xoomer.virgilio.it/_XOOM/spintop/textarea.htm
magari con mozilla, firebird o netscape.
ciao
sp-

 online.
meglio..


 Appunto. Hai visto il flusso del thread?
zč, lasciamo stare.
non moriro' se non risolvo il problema dei caratteri conm firebird.
la regexp di andrea non mi e' andata, la tua si, non so perche' ma cosi' e'
avvenuto.
non ne facciamo una questione di stato.
se ti va c'č il link e verifichi tu stesso (e uso solo regexp), altrimenti
ringrazio comunque entrambi per l'aiuto.
ciao e grazie per le spiegazioni che sono state cmq utilissime.
evviva firebird, in ogni caso.
sp-

 str.replace(/[\r\n]/g,' ').replace(/ +/g,' ').replace(/<br> ?/gi,"\n");
occhei ci provo e ti dico.
gracias :)
sp-

 cmq sarebbe Midas :)
No, Midas e' solamente il nome della tecnologia di Mozilla che copia da
quella Microsoft.


 non ne facciamo una questione di stato.
Mi piace solo dare a cesare quel che e' di cesare.


 quella Microsoft.
mi pare quella di MS si chiami MSHTML (seppur sia poco interessato a queste
nomenclature), mentre con Moz si tratta di Midas, che poi prende "forma" in
vari modi quali ad es. htmlarea.
ah poi ho riprovato anche altri modi ma moz mi trasforma sempre le righe in
un max di 76 chars.
alle volte anche meno.
ho cercato di capire il criterio logico (ma c'e'?) per il quale moz si
comporta cosě ma ancora non ne vengo a capo.
boh.
ciao
sp-

 comporta cosě ma ancora non ne vengo a capo.
Bisognerebbe vedere il codice. Sinceramente non ho mai avuto problemi del
genere; non c'e' da escludere che sia anche un bug del browser, ovviamente.


 La soluzione gliela avevo gia` passata:
Speriamo la implementi allora. :) Io sono curioso di capire il
comportamento di Mozilla, pero'.


 comportamento di Mozilla, pero'.
appena ho un po' di tempo libero (tipo che non lavoro ^__^) mi ci metto su e
aggiorno l'editor al link che ti ho dato, poi ti dico.
ciao
sp-