Avatar billede jonashn Nybegynder
30. april 2005 - 18:57 Der er 10 kommentarer og
1 løsning

Erstat funktion

Hej eksperter!

Jeg mangler en erstat funktion, der tager fire args: text, textToReplace, replaceText og global.
text, textToReplace og replaceText og  siger vel sig selv, og globel er true eller false, true hvis der skal replaces globelt i strengen.
Jeg har lige læst lidt om RegExp, men fatter det ikke helt.

Altså: Hvis alle g'erne i "gåsen gøede i gåsegården" (:-)) skal replaces bliver det til erstat("gåsen gøede i gåsegården","g","",true);
Avatar billede barklund Nybegynder
30. april 2005 - 19:11 #1
Eh, hvad med de indbyggede? Kig på str_replace for eksempel.
Avatar billede olebole Juniormester
30. april 2005 - 19:23 #2
<ole>

barklund >> Er det en funktion, I bruger i ActionScript, eller ...?  ;D

function myReplace(txt, repl, repl2, glob) {
    re = (glob)? new RegExp(repl, "g") : new RegExp(repl);
    return txt.replace(re, repl2);
}

/mvh
</bole>
Avatar billede jonashn Nybegynder
30. april 2005 - 19:36 #3
Barklund >> Det er til en lang række af replaces, så string.Replace er for besværligt.
Olebole >> Det ser godt ud. Jeg ser på det.
Avatar billede jonashn Nybegynder
30. april 2005 - 19:39 #4
Det virker:
<script type="text/javascript">
function myReplace(txt, repl, repl2, glob) {
    re = (glob)? new RegExp(repl, "g") : new RegExp(repl);
    return txt.replace(re, repl2);
}
alert("gåsen gedesen giver gæslinger gågå");
alert(myReplace("gåsen gedesen giver gæslinger gågå","g","geg",true));
</script>
Olebole, læg et svar!
Avatar billede barklund Nybegynder
30. april 2005 - 19:43 #5
(gdamn, jeg er dygtig - forkert kategori igen :/)
Avatar billede jonashn Nybegynder
30. april 2005 - 19:49 #6
Barklund >> HeHe - alt tilgivet ;-D - og nice smiley!
Olebole >> Jeg har forsøgt at definere den i String:

<script type="text/javascript">
function rep(txt, repl, repl2, glob) {
    re = (glob)? new RegExp(repl, "g") : new RegExp(repl);
    return txt.replace(re, repl2);
}
String.prototype.rep=new function (repl, repl2, glob) {
    txt=this.toString();
    re = (glob)? new RegExp(repl, "g") : new RegExp(repl);
    return txt.replace(re, repl2);
}
text="gåsen gedesen giver gæslinger gågå";
alert("gåsen gedesen giver gæslinger gågå");
alert(rep("gåsen gedesen giver gæslinger gågå","g","",true));
alert(text.rep("å", "ågå", true));
</script>

men den siger et objekt ventet. Hvad er der galt???
Avatar billede olebole Juniormester
30. april 2005 - 20:08 #7
Når du prototype'er på et objekt, skal du huske, at referencen til objektet er 'this' - like this:

<script type="text/JavaScript">
String.prototype.rep=function (repl, repl2, glob) {
    re = (glob)? new RegExp(repl, "g") : new RegExp(repl);
    return this.replace(re, repl2);
}
</script>
Avatar billede olebole Juniormester
30. april 2005 - 20:09 #8
- oooops ... og et svar  :)
Avatar billede olebole Juniormester
30. april 2005 - 20:17 #9
... og så er der to muligheder, når du skal oprette en funktion. Enten kan bruge Function-constructor'en - eller du kan oprette en anonym funktion, som jeg gjorde i eksemplet:

<script type="text/JavaScript">
var bla = function(s) {
    alert(s)
}

var blabla = new Function("s", "alert(s)");

bla("Darvs med dig, du");
blabla("Ugh ... :)");
</script>
Avatar billede jonashn Nybegynder
03. maj 2005 - 18:11 #10
Tusind tak!
Avatar billede olebole Juniormester
03. maj 2005 - 18:48 #11
- anytime, hombre  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester