Es gribētu izveidot String.replaceAll()
metodi JavaScript, un es domāju, ka, izmantojot regex būtu visterminētākais veids, kā to izdarīt. Tomēr es nevaru saprast, kā ievadīt mainīgo lielumu regeksā. Es jau varu to izdarīt, kas aizstās visus "B"
gadījumus ar "A"
.
"ABABAB".replace(/B/g, "A");
Bet es gribu darīt kaut ko līdzīgu:
String.prototype.replaceAll = function(replaceThis, withThis) {
this.replace(/replaceThis/g, withThis);
};
Bet acīmredzot tas aizstās tikai tekstu "replaceThis"
...kā gan es varu šo mainīgo ievadīt savā regex virknē?
Tā vietā, lai izmantotu /regex/g
sintaksi, varat izveidot jaunu objektu RegExp:
var replace = "regex";
var re = new RegExp(replace,"g");
Šādi var dinamiski izveidot regex objektus. Tad jūs darīsiet:
"mystring".replace(re, "newstring");
Šis:
var txt=new RegExp(pattern,attributes);
ir ekvivalents šim:
var txt=/pattern/attributes;
this.replace( new RegExp( replaceThis, 'g' ), withThis );