Hinzufügen der replaceAll-Methode der String-Klasse von ActionScript

Brauche ich etwas Hilfe, indem die alle ersetzen-Funktionalität in mein Flex-Projekt. Ich würde es vorziehen, dies zu tun in einer Weise, die so natürlich wie möglich.

Was ich erreichen will ist, um in der Lage sein, diesen code auszuführen (mit der Flex-compiler) "aabbaaba".replaceAll("b","c") und bekommen "aaccaaca". Auch ich möchte die Kette replaceAll Anrufe.
Hinweis: ich werde nicht wirklich ersetzen bs mit cs, aber verschiedene string, der nicht bekannt ist, Codierung Zeit!

Was ich nicht will:
1. Reguläre Ausdrücke verwenden mit dem global-flag. Die Token zu ersetzen bestimmt sind Anzeige der Laufzeit und verwandelt Sie in einen regulären Ausdruck ist nicht geradlinig.
2. Verwenden Sie die StringUtil.replace Methode. Es ist eine statische Methode und chaining ist hässlich.
3. Kette split und join. Da kann es verwirrend sein, für andere beim Lesen den code.
4. Deaktivieren der strengen Typüberprüfung. Ich will die Typprüfung für den rest von meinem code.


Hier ist was ich habe, so weit:

String.prototype.replaceAll = function(replace:String, replaceWith:String):String{
    return this.split(replace).join(replaceWith);
}

Und können benannt werden:

"aababacaaccb"["replaceAll"]("b", "c")["replaceAll"]("c", "a");

Außerdem gibt es Empfehlungen gegen eine Verlängerung der Objekte durch den Prototyp? Werde ich auch akzeptieren eine Antwort, die starke Argumente gegen die Ausweitung des String-Objekt über den Prototyp.

Danke,
Alin

Es wäre schön, wenn die Menschen, die down-vote rechtfertigen würde Ihr handeln in Ordnung für mich, um in der Lage sein Verbesserung die Frage. Danke.
wtf??? Sie will nicht regex? was ist der Punkt, das auch zu tun-string-suchen/ersetzen-dann überhaupt? Sie ersetzen eine Zeichenfolge. Verwenden Sie ein string-Funktion. Es ist nicht schwer zu verwenden, eine variable in einer regex .........
Sie wahrscheinlich nicht verstehen, die Frage. Oder nicht gelesen haben, es mit genügend Aufmerksamkeit. Was ich will, zu tun ist, was StringUtil.replace tut, aber direkt wie eine Methode auf, meinen String-Objekt. Ich habe keine Muster, ich habe nur eine Zeichenfolge, die ich ersetzen möchten. Es gibt eine Menge von Möglichkeiten, dies zu tun, aber ich wollte etwas clean (wie eine Methode, die auf Strings) oder so sauber wie möglich (wie das, was 9re oder Juan Pablo Califano vorgeschlagen).
Auch Sie sind nicht kohärent. Ich beziehe mich nicht auf Sie schlechte Englisch (das ist seltsam, weil Ihr Profil besagt, dass Sie aus New York), sondern um die Tatsache, dass Sie Widerspruch zu sich selbst. Zum Beispiel: "Sie will nicht von regex?" vs. "sind Sie ersetzt eine Zeichenfolge. Verwenden Sie ein string-Funktion.".
Auch Sie haben schien, um Ihre eigene Frage zu beantworten. Sie besagt, das Sie ersetzen möchten, aber Sie wollen nicht, um einen regex verwenden, noch beitreten, noch aufteilen, noch StringUtil.ersetzen, noch die Art der überprüfung. wtf. StringUtil.der Prototyp.replaceAll = function(r:String, B:String):String { return this.replace(new RegExp(r, 'g'), w); )

InformationsquelleAutor Alin Purcaru | 2010-11-03

Schreibe einen Kommentar