Newsgroup: it.comp.lang.javascript
Titolo: replace

sto studiando le espressioni regolari in Javascript e ho non riesco ad 
avere lo stesso risultato che uso in Perl:
[devo sostituire in carattere di newline (\n) con <br>]
Perl:
---------------------------------
$entra=~ s/\n/<br>/g;
---------------------------------
Javscript:
entra=document.form.textarea.value;
var myRegExp=/\n/g;
entra=entra.Replace(myRegExp,"<br>");
...............
però non mi sostituisce \n con <br>.......
ho provato con altri caratteri di escape tipo \d \D e li *capisce* ma \n 
non lo vede .......dove sbaglio?

 entra=entra.Replace(myRegExp,"<br>");
Va strutturata diversamente e inserito un carattere di escape per il
backslash di "\n":
myRegExp = /\\n/g;
entra=document.form.textarea.value;
nuova=entra.replace(myRegExp,"<br>");
document.form.textarea.value=nuova;
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 document.form.textarea.value=nuova;
mi dispiace ma non funzione non converte i RETURN [\n];

 mi dispiace ma non funzione non converte i RETURN [\n];
Strano, l'ho appena testato su 7 browser/2 piattaforme, a me non fa una
grinza. 
Provaci online:
http://web.tiscali.it/marcocatarsi/js/replace01.htm



a me non funzione ne su Netscape 6 ne su Explore 5 [piattaforma MAC]
(la tua on line non funziona!)

 a me non funzione ne su Netscape 6 ne su Explore 5 [piattaforma MAC]
Anch'io ho un Mac; Win lo emulo su VPC. Ti dico le prove che ho fatto:
 
                               MacOs 9.0
NS 4.7.5   Ok
NS 6.0     Ok
IE 4.5     Ok
IE 5.0     Ok
Opera 5.0  Ok
iCab 2.2   Non funziona, ma si tratta di una preview scaduta, ed è un
           browser decisamente immaturo sia nell'interpretazione del 
           js sia in quella dei css. IMHO non fa testo.         
                              VPC/Win 98:
NS 4.5.1   Ok
IE 4.7.2   Ok 
Dunque, non so che dire. La sintassi dello scriptino appare corretta;
quel poco di js che conosco lo sto imparando su questo ng, su
www.jspoint.it
 e sull'unico "libro" che realmente gradisco:
http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm



colpo di scena ora su netscape 6 mi funziona pero non \\n ma \n    
su explorere 5 ne \n che \\n
non c'e un altro modo di inserire il carattere \n nella RegExp tipo 
immettere il suo codice ascii relativo [13]
Grazie !

 immettere il suo codice ascii relativo [13]
Può essere. A mio parere ti vai a complicare la vita per niente: il
metodo replace fa il suo dovere così com'è.



oddio forse ho risolto cosi [su explorere tutto bene!!!]
----------------------------------------------
b=valore;
a=escape(b);
var myRegExp = /\%0D/g;
nuovo=a.replace(myRegExp,"<br>");
zizu=unescape(nuovo);
---------------------------------------------------------------------
che ne pensi?
mi puoi testare queste righe?
Grazie!

 mi puoi testare queste righe?
L'ho fatto, ma sembra non funzionare. Questo dimostra che - nonostante
gli identici piattaforma e browser - i nostri Mac interpretano il js in
maniera del tutto diversa.
Comunque, se vuoi farti un'idea di quel che pensa la documentazione
Netscape circa il metodo replace, dài uno sguardo a quel che segue:
-----------------------------------------------
Example 1. In the following example, the regular expression includes the
global and ignore case flags which permits replace to replace each
occurrence of 'apples' in the string with 'oranges.' 
re = /apples/gi;
str = "Apples are round, and apples are juicy.";
newstr=str.replace(re, "oranges");
document.write(newstr)
-----------------------------------------------
La "i", ultima lettera della prima riga (che nello scriptino sul web non
ho inserito), significa "case insensitive"; ovviamente per l'uso che
dovevi farne era preferibile eliminarla.



lo so le RegExp funzionano benissimo tranne che per il carattere \n
credevo che tradurre il \n in esadecimale potesse funzionare e infatti a 
me funziona benissimo su tutti browser che ho....
io ho mac 9.1 [non pensavo che i mac potessero interpretare diversamente 
i .Js]
------------------------
fammi un favore......
traduci il carattere \n con escape e dimii che esce fuori......
a me con exp = %0D
a me con net4= %0D
a me con net6= %0A
Grazie....

 a me con net6= %0A
Mac:
IE 5     =  %0A
IE 4.5   =  %0A
NS 4.7.5 =  %0D  <--- l'unico a pensarla diversamente
NS 6.0   =  %0A
Opera    =  %0A
iCab     =  %0A
Win:
IE       =  %0A
NS       =  %0A


opzz..
Grazie!