webForumDet fria alternativet

Replace?

7 svar · 363 visningar · startad av SilvioF

SilvioFMedlem sedan juni 2000585 inlägg
#1

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.

Peter SMedlem sedan dec. 20025 484 inlägg
#2

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.

:)

JojoxxMedlem sedan juni 20004 306 inlägg
#3

Umm... Varför inte använda just replace? :)

var str="rad<br>rad";
str=str.replace(/<br>/g,"\n");
Peter SMedlem sedan dec. 20025 484 inlägg
#4

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.

:)

JojoxxMedlem sedan juni 20004 306 inlägg
#5

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.

Peter SMedlem sedan dec. 20025 484 inlägg
#6

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

JojoxxMedlem sedan juni 20004 306 inlägg
#7

... 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.

Peter SMedlem sedan dec. 20025 484 inlägg
#8

Det är därför dessa argument är valfria. ;)

Dina sista två meningar verifieras.

:)

Genererad på 371 ms · cache AV · v20260730165559-full.f96bc7eb