tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    Benutzerbild von DataFox
    DataFox DataFox ist offline Mitglied Brokat DataFox hat eine blütenweiße Weste
    Registriert seit
    Nov 2007
    Beiträge
    267
    Hallo

    ich hole per JavaScript den innerHTML Content aus einem Element. Der Content ist oft aus Gründen der besseren Lesbarkeit eingerückt, dadurch entsteht aber ein riesiger Haufen Datenmüll. So ein Content kann z.B. so aussehen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    function MaxString(maximum, outputid, inputid){
        var value;
        value = maximum - document.getElementById(inputid).value.length;
        if(value < 0){
     document.getElementById(inputid).value = document.getElementById(inputid).value.substring(0,maximum);
     value = maximum - document.getElementById(inputid).value.length;
        }
        if(value == maximum){
     document.getElementById(outputid).innerHTML = "maximal";
        } else {
     document.getElementById(outputid).innerHTML = "noch " + value + " von";
        }
    }

    Gibt es eine einfache Möglichkeit, so eine Art "trim()", um die Einrückungen zu entfernen? Also nur die Einrückungen (Leerzeichen und Tabs) am Anfang einer Zeile, bis das erste echte Zeichen kommt.

    Das Ergebnis wäre dann sowas:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    function MaxString(maximum, outputid, inputid){
    var value;
    value = maximum - document.getElementById(inputid).value.length;
    if(value < 0){
    document.getElementById(inputid).value = document.getElementById(inputid).value.substring(0,maximum);
    value = maximum - document.getElementById(inputid).value.length;
    }
    if(value == maximum){
    document.getElementById(outputid).innerHTML = "maximal";
    } else {
    document.getElementById(outputid).innerHTML = "noch " + value + " von";
    }
    }

    freue mich über jeden Tipp!

    Gruß
    Laura

  2. #2
    Benutzerbild von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied Schnitzel Sven Mintel hat die Renommee-Anzeige deaktiviert
    tutorials.de Premium-User
    Registriert seit
    Aug 2003
    Ort
    Prenzlberg
    Beiträge
    18.128
    Blog-Einträge
    38

  3. #3
    Benutzerbild von DataFox
    DataFox DataFox ist offline Mitglied Brokat DataFox hat eine blütenweiße Weste
    Registriert seit
    Nov 2007
    Beiträge
    267
    Hi Sven,

    das sieht gut aus! Danke! Das mit dem "prototype" hat aber nichts mit prototype.js zu tun, also dieses weltberühmte Framework?

    Wie kann ich über eine Variable loopen, die zwar einen riesigen String enthält, der jedoch "intern" viele viele Zeilen hat? Also viele New-Line Sonderzeichen? Da muss man mit einer Schleife drüber um dann "Zeile für Zeile" zu betrachten, richtig?

    Gruß
    Laura

  4. #4
    Benutzerbild von hela
    hela hela ist gerade online Mitglied Brillant hela genießt hohes Ansehen hela genießt hohes Ansehen hela genießt hohes Ansehen hela genießt hohes Ansehen hela genießt hohes Ansehen hela genießt hohes Ansehen hela genießt hohes Ansehen hela genießt hohes Ansehen
    tutorials.de Premium-User
    Registriert seit
    Oct 2004
    Beiträge
    800
    Zitat Zitat von DataFox Beitrag anzeigen
    ... Das mit dem "prototype" hat aber nichts mit prototype.js zu tun, also dieses weltberühmte Framework? ...
    Hallo Laura,

    sieh dir das hier mal an. Wird dich vielleicht interessieren und deine Frage beantworten.

  5. #5
    Benutzerbild von cr4shm4n
    cr4shm4n cr4shm4n ist offline Mitglied Silber cr4shm4n ist ein sehr geschätzer Mensch
    Registriert seit
    Jul 2006
    Beiträge
    68
    Zitat Zitat von DataFox Beitrag anzeigen
    Das mit dem "prototype" hat aber nichts mit prototype.js zu tun, also dieses weltberühmte Framework?
    Schon, Prototype.js macht in größerem Maßstab genau das, was hier getan wurde. Das Framework wurde danach benannt.
    Zitat Zitat von DataFox Beitrag anzeigen
    Wie kann ich über eine Variable loopen, die zwar einen riesigen String enthält, der jedoch "intern" viele viele Zeilen hat? Also viele New-Line Sonderzeichen? Da muss man mit einer Schleife drüber um dann "Zeile für Zeile" zu betrachten, richtig?
    Geht auch ohne Loops, einfach den RegExp anpassen:
    Code :
    1
    
    /\s+$|^\s+/mg
    Ansonsten würde ich folgendes tun, um die Zeichenkette Zeilenweise durchzugehen:
    (angenommen str ist der zu Verarbeitende Text)
    Code :
    1
    2
    3
    4
    5
    
    var lines = str.split("\n");
    for (var i = 0; i < lines.length; i++)
    {
        // Code zum Verarbeiten
    }

    Edit: Ich sollte echt erstmal das Antwortfenster aktualisieren, bevor ich antworte, wenn ich das Fenster vor 20 Minuten geöffnet habe.

  6. #6
    Benutzerbild von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied Schnitzel Sven Mintel hat die Renommee-Anzeige deaktiviert
    tutorials.de Premium-User
    Registriert seit
    Aug 2003
    Ort
    Prenzlberg
    Beiträge
    18.128
    Blog-Einträge
    38
    Zitat Zitat von cr4shm4n Beitrag anzeigen
    Geht auch ohne Loops, einfach den RegExp anpassen:
    Code :
    1
    
    /\s+$|^\s+/mg
    Falls die Ümbrüche selbst erhalten bleiben solln, müsste es dann so aussehen:
    Code :
    1
    
    /(^[^\S\n\r]+|[^\S\n\r]+$)/gm

    @DataFox:
    Ums kurz zu Fassen, was prototype ist:
    Es ist eine Eigenschaft von JS-Objekten, welche einen Zeiger auf die Konstruktor-Funktion des Objektes liefert. Über diesen Zeiger kannst du den Konstruktor des Objektes um neue Eigenschaften und Methoden erweitern...in diesem Fall das in JS implementierte String-Objekt

    Oder ganz kurz:
    Zitat Zitat von DataFox
    Gibt es eine einfache Möglichkeit, so eine Art "trim()"
    Nein, aber per prototype kann man sie hinzufügen, was nicht passt wird halt passend gemacht

Ähnliche Themen

  1. HTML rausfiltern
    Von Merlin732 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 06.10.05, 11:15
  2. Sonderzeichen rausfiltern
    Von Wissenscoder im Forum PHP
    Antworten: 2
    Letzter Beitrag: 06.03.05, 10:58
  3. Stimme rausfiltern
    Von d4kine im Forum Audiotechnik, Recording & Audio-Software
    Antworten: 4
    Letzter Beitrag: 31.01.05, 20:41
  4. Zeilenumbruch rausfiltern
    Von js-mueller im Forum PHP
    Antworten: 5
    Letzter Beitrag: 11.02.04, 21:02
  5. Hintergrundgeräusche rausfiltern
    Von möp im Forum Audiotechnik, Recording & Audio-Software
    Antworten: 0
    Letzter Beitrag: 16.05.03, 10:00

Lesezeichen

Lesezeichen