Autor Thema: Mit JS CRLF durch <br> ersetzen...  (Gelesen 2476 mal)

Offline hampa

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
  • "As khunnt guat"
    • Hampas Blog
Mit JS CRLF durch <br> ersetzen...
« am: 24.05.05 - 13:55:58 »
Hallo Leute

Ich möchte gerne in einem String mit JavaScript (könnte auch eine Formel sein) die Zeichenfolge CRLF (chr(13)+chr(10)) durch einen <br>-Tag ersetzen.

Habt ihr sowas schoneinmal irgendwo gebraucht?

Danke für eure Vorschläge

Gruss aus der Schweiz
Hampa
Notes R8.5.2 FP3
Server  R8.5.2 FP3

Windows 2008
Windows 7
Linux-Mint LMXDE

Lieber unvollkommen als total fertig.

Offline Mark³

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
  • Nordisch by Nature
    • Das Leben aus der Sicht eines Menschen
Re: Mit JS CRLF durch <br> ersetzen...
« Antwort #1 am: 24.05.05 - 14:15:05 »
Willst du das im Frontend, Backend oder Web ersetzen? Im Web könnte sowas gehen:

var NS = (window.Event) ? 1 : 0;

function checkKey(e) {
  var code = (NS) ? e.which : event.keyCode;
 
  if (code == "13"){
HIER MUSS ERSETZ-CODE REIN
       return false; }
}

document.onkeypress = checkKey;

oder nimm das hier:

*Offered freely by Darren J Semotiuk, Collaborative Learning Network Inc., http:////www.co-learn.net/ Just keep this comment line intact. Thanks! *
function replacestring(str_normal,str_find,str_replace,int_case_insensitive)
{
       if (arguments.length<3 || str_find=="" || str_normal=="" ||
 typeof("".split)!="function")
              return(str_normal);

       //no parm means default, "case SENSITIVE"...
       if(!(int_case_insensitive))
              return(str_normal.split(str_find)).join(str_replace);

       str_find=str_find.toLowerCase();

       var rv="";
       var ix=str_normal.toLowerCase().indexOf(str_find);
       while(ix>-1)
       {
              rv+=str_normal.substring(0,ix)+str_replace;
              str_normal=str_normal.substring(ix+str_find.length);
              ix=str_normal.toLowerCase().indexOf(str_find);
       };
       return(rv+str_normal);
};//end function replacestring
sagt Mark.



slowfood.de

Offline hampa

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
  • "As khunnt guat"
    • Hampas Blog
Re: Mit JS CRLF durch <br> ersetzen...
« Antwort #2 am: 24.05.05 - 14:22:28 »
Hallo Mark

Vielen Dank für Deine Antwort....

Ich möchte beim "Submitten" des Web-Forms ein Feld abfüllen, dass aber keine CRLF enthalten darf. Die sollen durch <BR> ersetzt werden. In dem erwähnten Feld wird HTML-Code gespeichert, der später angezeigt werden soll.

Das Problem, dass ich sehe, ist, dass es sich um zwei Zeichen (eben CR und LF) handelt, die nun durch ein <BR>-Tag ersetzt werden sollen.

Ich könnte natürlich Deine Replace-Funktion nehmen und das chr(13) durch <BR> ersetzen und das chr(10) durch nichts. Vielleicht klappts ja.

Gruss Hampa
Notes R8.5.2 FP3
Server  R8.5.2 FP3

Windows 2008
Windows 7
Linux-Mint LMXDE

Lieber unvollkommen als total fertig.

Offline datenbanken24

  • Senior Mitglied
  • ****
  • Beiträge: 390
  • Geschlecht: Männlich
  • Stammgast
    • datenbanken24
Re: Mit JS CRLF durch <br> ersetzen...
« Antwort #3 am: 24.05.05 - 15:18:22 »
Wir machen das auf der Notes Seite nach dem Submit so:

Das HTML-Textarea Feld "A" ist auf der Notes Seite eine Textfeld mit Multivalue und Zeilenumbruch als Listentrenner.

So bekommt man beim Submit in dem eigentlichen Notes-Feld eine Liste zurück.

Das Zielfeld "B" soll Einzelwert Text sein, mit <br> antselle der Zeilenumbrüche.
Also ist die Berechnungsformel des (computed) Zielfeldes auf Notes-Seite dann ein einfaches

@Implode( Feld A; "<br>")

Gruß,
Uwe

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Mit JS CRLF durch <br> ersetzen...
« Antwort #4 am: 24.05.05 - 19:43:04 »
Das dürfte aber Leerzeilen im Input-Feld unterdrücken ... oder?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline datenbanken24

  • Senior Mitglied
  • ****
  • Beiträge: 390
  • Geschlecht: Männlich
  • Stammgast
    • datenbanken24
Re: Mit JS CRLF durch <br> ersetzen...
« Antwort #5 am: 25.05.05 - 08:16:33 »

Das Problem, dass ich sehe, ist, dass es sich um zwei Zeichen (eben CR und LF) handelt, die nun durch ein <BR>-Tag ersetzt werden sollen.

Ich könnte natürlich Deine Replace-Funktion nehmen und das chr(13) durch <BR> ersetzen und das chr(10) durch nichts. Vielleicht klappts ja.



CR und LF Ersetzung durch @Newline bei SingleValue Feldern:

@Trim(
     @ReplaceSubstring(
   "Feldname";
   (@Char(13) + @Char(10)) : @Char(13);
   @Char(13) : @NewLine)
)

Anstelle des Newline wäre das bei Dir das "<br>"

Einmal mit und einmal ohne:
(@Char(13) + @Char(10)) : @Char(13);

ist wegen Windows und Linux (Serverbasis),
die den Zeilenumbruch unterscheidlich zurückgeben.

Offline hampa

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
  • "As khunnt guat"
    • Hampas Blog
Re: Mit JS CRLF durch <br> ersetzen...
« Antwort #6 am: 25.05.05 - 08:46:59 »
Hallo und guten Morgen

Vielen Dank für Eure Auskünfte. Ich bin eben auf ein anderes Problemchen gestossen. Bis ahnin war es so, dass dieses Feld bei jedem submit mit HTML-Code gefüllt wird. Dieses Feld beinhaltet den HTML-Code, der im Read Mode eine Tabelle mit Spaltenüberschriften und den alten Werten anzeigt und wer das Dokument geändert hat. Abgefüllt wird das ganze mittels JS. Der Code sieht inetwa so aus (Ausschnitt):

Code
tHead = "<tr class=\"tHeadLine\"><td>" + doc.tmpTimeStamp.value + "</td><td>" + doc.tmpCurrUser.value + "</td><td>" + _state + "</td></tr>";
	sRemark = fnReplaceCR(doc.dsgnTaskAnswerRemark.value);
	
	if (g_HisNewAssign.length > 0) {	// Task wurde neu zugewiesen
		tBody = "<tr><td colspan=3>" + g_HisNewAssign  + "</td></tr>" + "<tr><td colspan=3>" + sRemark + "</td></tr>";
	} else {
		tBody = "<tr><td colspan=3>" + sRemark + "</td></tr>";
	};
	g_HisNewAssign = '';
	doc.dsgnTaskHistory.value += tHead + tBody;

Das Feld wird als mittels JS gefüllt und nicht Berechnetem Feldinhalt. Ich habe nämlich festgestellt, dass es mir nach einer gewissen länge einfach den Feldwert "abschneidet", was mir bei der Einfüllerei mit JS nicht passiert. Darum ist es (wahrscheinlich) nötig, dass ich die Ersetzerei von CRLF in JS bewerkstelligen kann. Was meint ihr dazu?

Gruss und Dank

Hampa

Notes R8.5.2 FP3
Server  R8.5.2 FP3

Windows 2008
Windows 7
Linux-Mint LMXDE

Lieber unvollkommen als total fertig.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz