Jag undrar om någon kan förklara för mig hur man gör en liknande Replace-funktion som finns VBScript. Det jag är ute efter är att ta bort <br> från en text och ersätta denna med CrLf.
Replace?
7 svar · 363 visningar · startad av SilvioF
Här är någonting som jag skrivit ihop för ett tag sedan:
function Replace(s, f, rw){
if(arguments.length > 4){
for( ; arguments[4] > 0; s=s.substring(arguments[3]-1, s.length).replace(f, rw), arguments[4]--);
return s;
}
return ((arguments.length < 4) ? s.replace(RegExp(f, "g"), rw) : (arguments.length == 4) ?
s.substring(arguments[3]-1, s.length).replace(RegExp(f, "g"), rw) : null);
};
Eftersom den är relativt otestad får du gärna återkomma med resultatet.
:)
Visst kan man använda den, men eftersom SilvioF efterfrågade en JavaScript-funktion som liknar VBScripts Replace()-funktion, tänkte jag att jag skulle bidra med en sådan. ;)
Skillnaden mellan mitt exempel och ditt, är att min funktion accepterar fem argument:
Replace([i]sträng[/i], [i]ersätt[/i], [i]ersätt med[/i][, startposition[, antal ersättningar]])
Där de två sista (som är valfria) anger var i strängen sökningen skall börja, samt hur många ersättningar som skall göras.
:)
Inget ont om din funktion :) Det var mer en fundering om det inte var enklare att använda replace-funktionen som finns till just detta.
Jo, men jag tolkade det som så att författaren till denna tråd ville ha en ekvivalent JavaScript-version av VBScripts Replace()-funktion. (Dock kan jag erkänna att jag utelämnade det sjätte och sista valfria argumentet :e )
:bire
... och jag tolkade det som att Silvio ville ersätta "<br>" med CrLf i en textsträng. Verkar lite omotiverat med en funktion som tar startposition och antal ersättningar.
Men, jag måste erkänna att jag också är ett offer för overkill-lösningar. "Det kan vara bra att ha" är ett mått jag använder till flertalet komponentar jag skriver.