Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-12-2004, 13:04   #1 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
[STUFF] stripSpaces Prototype

Noch ein kleines, simples Snippet, das in Kombination mit meinem hitEnter Prototype sehr nützlich sein kann

Das Script ist von mir, jedoch habe ich heute hier im Forum entdeckt, daß jemand sowas auch für MX2004 geschrieben hat.
Da habe ich mich inspirieren lassen, die Optionen "l" und "r" hinzuzufügen.
Leider konnte ich jetzt auf die Schnelle den Thread nicht wiederfinden, ansonsten hätte ich den Link hier auch noch platziert...

Hier jedoch mein AS 1.0 Script:

(Erklärungen wieder als Kommentare im as - FLA wird hier nicht benötigt...)

ActionScript:
  1. // stripSpaces prototype by querkopf
  2. //
  3. // Aufruf:
  4. // meinString.stripSpaces(optionen);
  5. //
  6. // optionen (optional): string
  7. // - wenn nicht vorhanden (undefined) werden die Leerstellen links und rechts entfernt.
  8. // - der string kann "l" oder "r" sein ("l" entfernt die Leerstellen links, "r" entfernt die Leerstellen rechts)
  9. //
  10. String.prototype.stripSpaces = function(s) {
  11.     var arr = this.split("");
  12.     if (s == "l" || s == undefined) {
  13.         for (var i = 0; i<arr.length; i++) {
  14.             if (arr[i] == " ") {
  15.                 arr[i] = "";
  16.             } else {
  17.                 i = arr.length;
  18.             }
  19.         }
  20.     }
  21.     if (s == "r" || s == undefined) {
  22.         for (var k = (arr.length-1); k>0; k--) {
  23.             if (arr[k] == " ") {
  24.                 arr[k] = "";
  25.             } else {
  26.                 k = 0;
  27.             }
  28.         }
  29.     }
  30.     return arr.join("");
  31. };
  32. //
  33. //
  34. // BSP: ....................................................................................
  35. meinString = "             ein Eintrag                   ";
  36. trace("unstripped ->"+meinString+"<-");
  37. trace("stripped ->"+meinString.stripSpaces()+"<-");
  38. trace("stripped \"l\" ->"+meinString.stripSpaces("l")+"<-");
  39. trace("stripped \"r\" ->"+meinString.stripSpaces("r")+"<-");
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 20-07-2005, 14:20   #2 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Sooooooooo... hab' die Funktion überarbeitet und ergänzt.

Ich brauchte für eine Freitexteingabe die Möglichkeit überflüssiges (Leerzeichen und Zeilenumbrüche) zu entfernen, noch BEVOR es rausgeschickt wird.

Dabei entstand das kleine Snippet hier:

ActionScript:
  1. //
  2. // stripDubbleSpaces prototype & removeLineFeed Function by querkopf
  3. //
  4. // Aufruf:
  5. // removeLineFeed(meinString).stripDubbleSpaces();
  6. //
  7. //
  8. function removeLineFeed(t) {
  9.     var t = t.split("\\r\\n").join(" ");
  10.     var t = t.split("\\r").join(" ");
  11.     var t = t.split("\\n").join(" ");
  12.     return t;
  13. }
  14. String.prototype.stripDubbleSpaces = function() {
  15.     var a = this.split("");
  16.     var r = new Array();
  17.     for (var i = 0; i < a.length; i++) {
  18.         if (a[i].charCodeAt() > 32) {
  19.             r.push(a[i]);
  20.         } else if (a[i] == " " && i > 0 && r.length > 0 && a[i + 1] != " ") {
  21.             r.push(a[i]);
  22.         }
  23.     }
  24.     var r = r.join("").split("");
  25.     for (var k = (r.length - 1); k > 0; k--) {
  26.         if (r[k] == " ") {
  27.             r[k] = "";
  28.         } else {
  29.             k = 0;
  30.         }
  31.     }
  32.     return r.join("");
  33. };
  34.  
  35. //
  36. //
  37. // BSP: ..................................................  ..................................
  38. meinString = "        \\n     ein          \\n       ganz\\n  konfuser \\n\\n\\n Eintrag             ";
  39. trace("unstripped ->"+meinString+"<-");
  40. trace("stripped ->"+removeLineFeed(meinString).stripDubbleSpaces()+"<-");

Viel Spaß beim Benutzen

Feedback erwünscht!

Bis dann,
-querkopf-
__________________
Alles ist wie immer. Nur schlimmer.

Geändert von querkopf (20-07-2005 um 14:22 Uhr)
querkopf ist offline   Mit Zitat antworten
Alt 03-03-2006, 15:39   #3 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Alle halbe Jahre wieder...

Hier nun eine Variante des Prototyps, die doppelte Leerzeichen und Zeilenumbrüche entfernt. Der am Ende ausgegebene String enthält dann "\r" als Zeilenumbrüche.

ActionScript:
  1. String.prototype.cleanString = function() {
  2.     var t = this;
  3.     var t = t.split("\n").join("\r");
  4.     var a = t.split("");
  5.     var r = new Array();
  6.     for (var i = 0; i < a.length; i++) {
  7.         if (a[i].charCodeAt() > 32) {
  8.             // trace("a[" + i + "] \"" + a[i] + "\" -> \"" + r[r.length - 1] + "\"");
  9.             r.push(a[i]);
  10.         } else if (a[i] == "\r" && i > 0 && r.length > 0 && a[i + 1] != "\r" && r[r.length - 1] != "\r") {
  11.             // trace("a[" + i + "] \"" + a[i] + "\" -> \"" + r[r.length - 1] + "\"");
  12.             r.push(a[i]);
  13.         } else if (a[i] == " " && i > 0 && r.length > 0 && a[i + 1] != " " && r[r.length - 1] != "\r" && a[i + 1] != "\r") {
  14.             // trace("a[" + i + "] \"" + a[i] + "\" -> \"" + r[r.length - 1] + "\"");
  15.             r.push(a[i]);
  16.         }
  17.     }
  18.     if (r[r.length - 1] == "\r") {
  19.         r.splice(r.length - 1);
  20.     }
  21.     var r = r.join("").split("");
  22.     for (var k = (r.length - 1); k > 0; k--) {
  23.         if (r[k] == " ") {
  24.             r[k] = "";
  25.         } else {
  26.             k = 0;
  27.         }
  28.     }
  29.     return r.join("");
  30. };
  31. meinString = "        \r     ein          \r       ganz\r  konfuser \r\r\r Eintrag  mit    nachsatz         \r \n  \n\r      ";
  32. trace("unstripped ->" + meinString + "<-");
  33. trace("stripped ->" + meinString.cleanString() + "<-");

Viel Spaß!
-querkopf-
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele