Rad bi ustvaril metodo String.replaceAll()
v javascriptu in mislim, da bi bila uporaba regexa najbolj enostaven način za to. Vendar ne morem ugotoviti, kako naj regexu predam spremenljivko. To že lahko storim, kar bo vse primere "B"
nadomestilo z "A"
.
"ABABAB".replace(/B/g, "A");
Vendar želim narediti nekaj takega:
String.prototype.replaceAll = function(replaceThis, withThis) {
this.replace(/replaceThis/g, withThis);
};
Toda očitno bo to nadomestilo samo besedilo "replaceThis"
...kako naj torej to spremenljivko prenesem v svoj niz regex?
Namesto sintakse /regex/g
lahko sestavite nov predmet RegExp:
var replace = "regex";
var re = new RegExp(replace,"g");
Na ta način lahko dinamično ustvarjate objekte regex. Potem boste naredili:
"mystring".replace(re, "newstring");
To:
var txt=new RegExp(pattern,attributes);
je enakovredno temu:
var txt=/pattern/attributes;
this.replace( new RegExp( replaceThis, 'g' ), withThis );