JavaScript Zoek en vervang met variabele in reguliere expressie

Mogelijk duplicaat:
   Regular Expression Pattern with A Variable

function function1() {
    var key = "name";
    var sample = "param.name['key'] = name; param.name[i] = 1000; param.name1[i] = name1;";
    var result = result.replace(/param.<>\[(\d+)\]/g, 'parameter[prefix_$1]');
}

Verwacht resultaat: parameter ['prefix_key'] = naam; parameter ['prefix_i'] = 1000; Ik kan geen variabele sleutel toevoegen aan de vervangingsfunctie in reguliere expresssie.
Help ons alsjeblieft hoe je de reguliere expressie in vervanging moet bouwen

0
ja ru de

1 antwoord

U kunt een regex uit een tekenreeks maken door een RegExp -object te maken:

var regex = new RegExp("param\\." + name + "\\[(\d+)\\]", "g")
var result = result.replace(regex, 'parameter[prefix_$1]');
1
toegevoegd
@ user1812171: Blender miste enkele ontsnappingen ... opgelost. Nog steeds een duplicaat.
toegevoegd de auteur Felix Kling, de bron
@ user1812171: Omdat ik niet weet welke uitvoer u krijgt, kan ik u niet veel helpen. Toch is deze vraag meerdere keren gesteld. Lees die vraag, zorg ervoor dat je de basisprincipes van reguliere expressies begrijpt en probeer het te maken. Alles wat je moet weten is er, je hoeft alleen maar de stukjes bij elkaar te zetten. bewerken: het probleem zit in je oorspronkelijke uitdrukking. \ d + komt alleen overeen met cijfers en niet bijvoorbeeld 'key' . Pas uw expressie dienovereenkomstig aan en het zal werken. Als u niet bekend bent met reguliere expressie, raad ik aan om regular-expressions.info te lezen.
toegevoegd de auteur Felix Kling, de bron
~ function function1() {var key = "name"; var sample = "param.name ['key'] = naam; param.name [i] = 1000; param.name1 [i] = naam1;"; var regex = nieuwe RegExp ("param \." + naam + "[(\ d +)]", "g") var result = sample.replace (regex, 'parameter [prefix_ $ 1]'); alert (resultaat);//Verwacht resultaat: parameter ['prefix_key'] = naam; parameter ['prefix_i'] = 1000;//Ik kan variabele sleutel niet toevoegen aan de vervangingsfunctie in reguliere expresss. } ~ Ik heb een updatefunctie met uw code.
toegevoegd de auteur user1812171, de bron
GEEN goede output krijgen
toegevoegd de auteur user1812171, de bron