String mit regulären ausdrücken eval

Hallo Alle,

ich versuche mit JavaScript replace und match bei strings zu arbeiten .

nach folgendem muster :

var fieldlook =„Hallo Welt!“;
var neu=„sterbende Welt“;
var finde=/Welt/g;
if (fieldlook.mach(finde))
fieldlook.mach(finde,neu);
alert(fieldlook);

jetzt will ich das in einer funktion haben

function wer(such){
var fieldlook =„Hallo Welt!\nHallo Belt!\nHallo Welt!“;
var neu=„sterbende Welt“;
var finde=/such/g;
var res = „“;
if (fieldlook.match(finde))
var res = fieldlook.replace(finde,neu);
alert(„Res:“+res+"_such:"+finde);
}

erzeugt:
Res:_such:/such/

also ein fehler

mit
var fieldlook = ‚/‘+ such +’:/g;’;
oder
var fieldlook = ‚/‘+ such +’:/g’;
findet er nichts

nur mit eval gehts , also so
var fieldlook = eval(’/’+ such +’:/g’);

ergibt
Res:Hallo sterbende Welt!
Hallo Belt!
Hallo sterbende Welt!_such:/Welt/g

Meine Frage ist also, muss ich bei einem string mit regulären ausdrücken ein eval anwenden oder gehts auch anders.

Protokoll :

Objekt:string mit regulären ausdrücken ein eval anwenden;
Subjekt:bei einem string;
Umgebung:JavaScript replace und match;
Wann:immer;
Davor:immer;
Danach:immer;
Ziel:muss ich bei einem string mit regulären ausdrücken ein eval anwenden oder gehts auch anders;
Fähigkeiten:gut;

Iacta alea est

mit
var fieldlook = ‚/‘+ such +’:/g;’;
oder
var fieldlook = ‚/‘+ such +’:/g’;
findet er nichts

Hallo,

das ist schon plausibel, dass das Ankleben von Schrägstrichen nichts bringt, weil dadurch bei Textkonstanten ja nur markiert wird, dass es sich um reguläre Ausdrücke handelt.
Wenn man den Wert einer Textvariablen als regulären Ausdruck haben möchte, ist das Verfahren der Wahl, den Konstruktor RegExp zu bemühen, der als erstes Argument die Zeichenkette und als optionales zweites einen String mit Flags wie g, i und m bekommt, also

RegExp("such", "g") 

.

Grüße, guidot

Wenn man den Wert einer Textvariablen als regulären Ausdruck
haben möchte, ist das Verfahren der Wahl, den Konstruktor
RegExp zu bemühen, der als erstes Argument die Zeichenkette
und als optionales zweites einen String mit Flags wie g, i und
m bekommt, also

RegExp(„such“, „g“)

.

Grüße, guidot

Danke , das wäre dann der andere weg , merci für die detail Erläuterung :smile: