| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) | |
| Neuer User Registriert seit: Apr 2004
Beiträge: 38
| trim-Funktion in actionscript?
Gibt es in Actionscript eine Funktion, die Links und rechts von einem String Leerzeichen und Zeilenumbrüche entfernt, also so wie die Funktion trim() in PHP? Zitat:
| |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Apr 2004
Beiträge: 38
|
Hmmm, ich habe jetzt schnmal provisorisch eine eigene trim-Funktion geschrieben. Code: String.prototype.getTrimmedString = getTrimmedString;
function getTrimmedString() {
var trimmedString = this;
// String mit allen Zeichen, die am Anfang und am Ende des Strings entfernt werden sollen
var whitespaceString = " \n\r";
// Zeichen vorne entfernen
var ready = false;
while (ready == false) {
if ((trimmedString.charAt(0) != "") and (whitespaceString.indexOf(trimmedString.charAt(0)) <> -1)) {
trimmedString = trimmedString.substring(1, this.length);
} else {
ready = true;
}
}
// Zeichen hinten entfernen
var ready = false;
while (ready == false) {
if ((trimmedString.charAt(0) != "") and (whitespaceString.indexOf(trimmedString.charAt(trimmedString.length-1)) <> -1)) {
trimmedString = trimmedString.substring(0,trimmedString.length-1);
} else {
ready = true;
}
}
// getrimmten String zurückgeben
return trimmedString;
} |
| | |
| | #3 (permalink) |
| Herr Brot Registriert seit: Dec 2002
Beiträge: 1.692
|
so, hab auch mal schnell eine geschrieben, kann man bestimmt noch optimieren! ist aber schonmal einiges schneller als deine variante. Code: test = "\rHallo\n";
//deins
String.prototype.getTrimmedString = getTrimmedString;
function getTrimmedString() {
var trimmedString = this;
// String mit allen Zeichen, die am Anfang und am Ende des Strings entfernt werden sollen
var whitespaceString = " \n\r";
// Zeichen vorne entfernen
var ready = false;
while (ready == false) {
if ((trimmedString.charAt(0) != "") and (whitespaceString.indexOf(trimmedString.charAt(0)) <> -1)) {
trimmedString = trimmedString.substring(1, this.length);
} else {
ready = true;
}
}
// Zeichen hinten entfernen
var ready = false;
while (ready == false) {
if ((trimmedString.charAt(0) != "") and (whitespaceString.indexOf(trimmedString.charAt(trimmedString.length-1)) <> -1)) {
trimmedString = trimmedString.substring(0,trimmedString.length-1);
} else {
ready = true;
}
}
// getrimmten String zurückgeben
return trimmedString;
}
//meins
String.prototype.trim = function() {
var trimmed;
var firstChar = this.charAt(0);
var lastChar = this.charAt(this.length-1);
if(firstChar == " " || firstChar == "\n" || firstChar == "\r")
trimmed = this.substring(1, orgLength);
if(lastChar == " " || lastChar == "\n" || lastChar == "\r")
trimmed = trimmed.substring(0, trimmed.length-1);
return trimmed;
}
start = getTimer();
for(var i=0; i<1000; i++) {
var blupp = test.getTrimmedString();
}
trace("Fkt1: "+(getTimer()-start));
start = getTimer();
for(var i=0; i<1000; i++) {
var blupp = test.trim();
}
trace("Fkt2: "+(getTimer()-start));
trace("_"+test.trim()+"_");
trace("_"+test.getTrimmedString()+"_");
__________________ „Ich war geheilt, all right!“ |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Apr 2004
Beiträge: 38
|
Danke für die Antwort ![]() Ich glaube, dass die Funktion die du geschrieben hast nicht das macht, was meine macht und das was ich brauche.Die Funktion soll _alle_ "unnötigen" Zeichen am Anfang und am Ende entfernen. D.h. also aus dem String "\n\r blubber \n\n \r" soll werden "blubber" Deine Funktion schmeißt höchstens vorne und hinten ein Zeichen weg. Der von dir gemessene Zeitunterscheid beim entfernen eines Buchstaben kommt sicherlich daher, dass du das Zeichen direkt prüfst und ich das Zeichen per indexOf() in meine String suche, der alle "unnötigen" Zeichen definiert. Ich habe diese Methode gewählt um bequem noch eine neues Zeichen als "unnötig" zu definieren. |
| | |
| | #5 (permalink) |
| Herr Brot Registriert seit: Dec 2002
Beiträge: 1.692
| Code: String.prototype.trim = function() {
var trimmed = this;
var firstChar = trimmed.charAt(0);
var lastChar = trimmed.charAt(trimmed.length-1);
while(firstChar == " " || firstChar == "\n" || firstChar == "\r"){
trimmed = trimmed.substring(1, trimmed.length);
firstChar = trimmed.charAt(0);
}
while(lastChar == " " || lastChar == "\n" || lastChar == "\r") {
trimmed = trimmed.substring(0, trimmed.length-1);
lastChar = trimmed.charAt(trimmed.length-1);
}
return trimmed;
} gruß, mati
__________________ „Ich war geheilt, all right!“ Geändert von mati (12-06-2004 um 14:07 Uhr) |
| | |
| | #7 (permalink) |
| Herr Brot Registriert seit: Dec 2002
Beiträge: 1.692
|
also, hab nochmal bisserl geschaut. meine variante mit <TAB>: Code: String.prototype.trim = function() {
var trimmed = this;
var firstChar = trimmed.charAt(0);
var lastChar = trimmed.charAt(trimmed.length-1);
while (firstChar == " " || firstChar == "\n" || firstChar == "\r" || firstChar == "\t") {
trimmed = trimmed.substring(1, trimmed.length);
firstChar = trimmed.charAt(0);
}
while (lastChar == " " || lastChar == "\n" || lastChar == "\r" || firstChar == "\t") {
trimmed = trimmed.substring(0, trimmed.length-1);
lastChar = trimmed.charAt(trimmed.length-1);
}
return trimmed;
}; Code: String.prototype.trim = function(){
if (!isNaN(this+" 0")) return "";
var s = 0, e = this.length;
while(s < e) if (isNaN(this.charAt(s)+" 0")){break;}else{s++;}
while(e > 0) if (isNaN(this.charAt(e)+" 0")){break;}else{e--;}
return this.substring(s,e+1);
} gruß, " mati".trim()
__________________ „Ich war geheilt, all right!“ |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
sowas geht auch, nur performance hab ich nun nich nachgeprüft wird wohl recht ätzend sein PHP-Code: Geändert von Deluxe (13-06-2004 um 14:01 Uhr) |
| | |
| | #9 (permalink) | |
| Herr Brot Registriert seit: Dec 2002
Beiträge: 1.692
| Zitat:
hi deluxe, ja so war mein erster gedanke auch, doch funktioniert nicht wirklich, da: "Ich mag das FF " dann "IchmagdasFF" wird mati
__________________ „Ich war geheilt, all right!“ | |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
jau desshalb hab ich den auch nochmal editiert hab jetzt einfach 2 blanks reingenommen dann werden so konstrukte wie " blubber " ganz auf "blubber" oder auf " blubber " gekillt was man dann nurnoch machen muß checken ob links bzw rechts nen blank ist und das killen also so in der art PHP-Code: |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |