Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [Prog] VB => JavaScript (server-side) (https://forum.scholieren.com/showthread.php?t=861048)

Kawoutertje 05-06-2004 13:05

[javascript] VB => javascript
 
Hoi, enkele dagen geleden heb ik in het centraal HTML/CSS/JAVASCRIPT topic het volgende gepost. Wegens geen reactie en omdat ik eigenlijk denk dat het er niet echt past (omdat dit ook over VBscript gaat, en bovendien en vooral omdat het server-side is, terwijl in het centrale topic het toch over client-side gaat...) nog maar eens een poging, maar dan hier.

Ik heb volgend VBscriptje dat wordt uitgevoerd wanneer tekst uit een textarea gehaald wordt. Het vertaalt Chr(13) (= een linebreak, dus wanneer er enter gedrukt wordt) naar <br />.
Code:

<SCRIPT runat=SERVER language=VBSCRIPT>                                     
function mt_lineBreakXHTML(str)
on error resume next
mt_lineBreakXHTML = Replace(str,Chr(13),"<br />")
End Function
</SCRIPT>

Nu had ik dit graag in javascript gehad, omdat ik een verstokte ASP-javascript gebruiker ben, en het dus mooier zou passen in mijn code mocht het javascript zijn.
Mij lijkt volgende vertaling naar javascript perfect te moeten werken, maar helaas doet hij het niet.
Code:

function lineBreak(str){
  str = str.replace(chr(13)/g,"<br />");
  return str;
}

De fout zit 'm volgens mij in de "chr(13)", maar ik weet helaas niet hoe ik dit kan oplossen... Alle creatieve suggesties welkom ...

eddie 05-06-2004 14:52

Wanneer je de moeite had genomen om de reference door te lezen en de bijbehorende uitleg over regular expression, had je kunnen zien dat je
Code:

str = str.replace( /\n/g, "<br \/>" );
moet gebruiken. Volgende keer zelf even wat moeite doen dus :)

Kawoutertje 05-06-2004 21:21

Citaat:

eddie schreef op 05-06-2004 @ 15:52 :
Wanneer je de moeite had genomen om de reference door te lezen en de bijbehorende uitleg over regular expression, had je kunnen zien dat je
Code:

str = str.replace( /\n/g, "<br \/>" );
moet gebruiken. Volgende keer zelf even wat moeite doen dus :)

Ik pleit schuldig. Zo nu en dan post ik zinloze dingen, maar wanneer iemand eerst iets in een subforumpje (lees: centraal topic) post om het daarna als echte topic in het hoofdforum te posten, zou je toch wel mogen verwachten dat hij/zij eerst wel zelf wat gezocht heeft.

And I did!!! :p
Dat had ik namelijk ook al geprobeerd, maar helaas zonder succes.

Maar ik kwam hier eigenlijk nog eens kijken om het volgende te roepen:

EUREKA

De enige echte werkende oplossing is namelijk:
str = str.replace(/%0D%0A/g,"<br />");
Blijkbaar wordt een 'enter' omgezet in de codereeks ' %0D%0A ' wanneer je het rechtstreeks uit een textarea haalt en naar een javascript variabele omzet.

Wat er ook van zij, hiermee werkt het dus !!!
Joepie :D


Baai de weej: vraag me niet hoe, maar helemaal zelf gevonden :o :D (y)

eddie 06-06-2004 12:49

Tja, dat een enter wordt omgezet in %0D%0A had ik je ook kunnen vertellen wanneer je meer informatie had gegeven over het gebruik en het doel van de replace.

Mijn antwoord is de javascript kopie van de VB replace.

Kawoutertje 06-06-2004 12:49

Ahaaaaa, nu snap ik 'm helemaal...

Ik haalde de form - variabelen op uit de form met Request.Form(). Zo kwamen ze er allemaal ineens uit. Ik zette die dan om naar een string en splitste de string om het in een mooie array te krijgen.
En als je ze zo allemaal ineens ophaalt, dan krijg je zo van die vreemde tekenreeksen zoals die ' %0D%0A ' voor een enter, en een ' + ' voor een spatie en zo.

Wanneer je ze nu één voor één ophaalt uit de form (met Request.Form("tekst") voor de textarea met naam "tekst" bijvoorbeeld), dan krijg je je tekst zonder al die vreemde tekens. En in dit laatste geval werkt de .replace( /\n/g, "<br />" ); wel.

@ Eddie: mijn excuses, onder de juiste omstandigheden klopt jouw oplossing wel :bloos:

eddie 06-06-2004 12:55

Citaat:

Kawoutertje schreef op 06-06-2004 @ 13:49 :
Ahaaaaa, nu snap ik 'm helemaal...

Ik haalde de form - variabelen op uit de form met Request.Form(). Zo kwamen ze er allemaal ineens uit. Ik zette die dan om naar een string en splitste de string om het in een mooie array te krijgen.
En als je ze zo allemaal ineens ophaalt, dan krijg je zo van die vreemde tekenreeksen zoals die ' %0D%0A ' voor een enter, en een ' + ' voor een spatie en zo.

Wanneer je ze nu één voor één ophaalt uit de form (met Request.Form("tekst") voor de textarea met naam "tekst" bijvoorbeeld), dan krijg je je tekst zonder al die vreemde tekens. En in dit laatste geval werkt de .replace( /\n/g, "<br />" ); wel.

Wat is dat nou weer voor een wazige server-side programmeertaal? Een functie meer aandroep X geeft wat anders terug dan met aandroep Y... Zeker ASP (.NET)?


Alle tijden zijn GMT +1. Het is nu 18:02.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.