første parameter til replace er faktisk en regular expression selvom mange imoplementationer af javascript tillader at man skriver en streng istedetfor.
derudover returnerer funktionen en ny streng. den ændrer ikke i den streng der søges i. så
content.replace('!','#');
skrives mere korrekt som:
content = content.replace( /!/g, '#' );
Du skal passes på med tegn der har en specialbetydning i regular expressions. '.' (punktum) står fx for 'ethvert tegn', så:
content = content.replace( /./g, '#' );
vil give en streng af bare # tegn. det bør skrives
content = content.replace( /\./g, '#' );
så punktummet læses som et bogstav og ikke som specialtegn
andre specialtegn der skal escapes på den måde er:
^ $ [ ] { } ( ) - + * \ / |
se:
http://developer.netscape.com/docs/manuals/js/client/jsref/regexp.htmhvis dinne specieller teng alle skal erstattes med det samme kan du skrive dem som er liste med [ og ] rundtom:
content = content.replace( /[\."'!\?]/g, '#' );
// den udskifter alle forekomster af '.', '"', "'", '!' og '?' med '#'
mvh JakobA