Regulärt utryck, ersätta upprepade "strängar"

JavaScript

5 svar · 348 visningar · startad av Erik Juhlin

Medlem sedan maj 200010 687 inlägg
Trådstart#1

Hallå, jag hoppas någon kan hjälpa mig med detta. :)
Jag skulle behöva ett regulärt uttryck som tar en stor sträng och ersätter en viss sak som upprepas flera gånger så den saken bara skrivs en gång.

Väljer man att "Foo" ska vara "saken" så ska: ...Foo...FooFoo..FooFooFoo..Foo bli ...Foo...Foo..Foo..Foo.
Eller om man vill ha "\n<P>" så ska ...\n<P>\n<P>...\n<P>.. bli ...\n<P>...\n<P>... :)

Någon som kan hjälpa mig? :)

Medlem sedan juni 20008 205 inlägg
#2
function removeRepetitions(s, w){
	var reg = new RegExp("(" + w + ")+", "g");
	return s.replace(reg, w);
}

var text = "i'm a snafu guy in a snafusnafu world";
alert(removeRepetitions(text, "snafu"));
Medlem sedan maj 200010 687 inlägg
#3

Tack! :)

Medlem sedan maj 200010 687 inlägg
#4

Men om man vill att det ska vara case-insensitive...?

Medlem sedan juni 20004 308 inlägg
#5

Använd "i" för caseInsensitive;

var reg = new RegExp("(" + w + ")+", "gi");

Medlem sedan maj 200010 687 inlägg
#6

:)

252 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)