Severin: Backslash,String und RegExp

Hallo,

Also ich möchte ein vom User eingegebenes Wort mit einem anderen Erstetzten. Also praktisch:

text.replace(/\Variable\b/,"NeuesWort");

Das funktioniert nicht, da er so Variable als String behandelt.

Also habe ich versucht /\ und \b/ in variablen zu speichern. Also:

var1="/";
var2="\b/";
var3=var1+Variable+var2;
text.replace(var3,"NeuesWort");

Jetz bekomme ich immer ein Problem und zwar "nichtabgeschlossene Zeichenkette"(oder so...)

Also habe ich versucht nach dem Backslash ein leerzeichen zu lassen Also:

var1=" /\ ";
...

Dann erhiet ich keine fehlermedung, aber getan hat sich auch nichts :(

Darum meine Frage: Gibt es eine möglichkeit den Backslsh zu maskieren (ASCII,binär,etc), irgendeine andere Möglichkeit das zu realiesieren oder ist es unmöglich?

Danke,

Severin

  1. Hallo.

    Darum meine Frage: Gibt es eine möglichkeit den Backslsh zu maskieren (ASCII,binär,etc), irgendeine andere Möglichkeit das zu realiesieren oder ist es unmöglich?

    Aus / wird / und aus \ wird \.
    Also in deinem Fall: text.replace(/\Variable\b/,"NeuesWort");

    Gruß
    Norbert

  2. gruss Severin,

    text.replace(/\Variable\b/,"NeuesWort");
    Das funktioniert nicht, da er so Variable als String behandelt.

    Also habe ich versucht /\ und \b/ in variablen zu speichern. Also:
    var1="/";
    var2="\b/";
    var3=var1+Variable+var2;
    text.replace(var3,"NeuesWort");

    benutze doch den RegExp-konstruktor:

    var regExpression = new RegExp(variable+"\b","g");
    // var regExpression = new RegExp("\b"+variable+"\b","g");
    // alert(regExpression );
       text = text.replace(regExpression,"neuesWort");

    // eval() taete es auch -
    // var regExpression = eval("/\b"+variable+"\b/g");
    // - verstoesst aber gegen die reine lehre;

    by(t)e by(t)e - peterS. - pseliger@gmx.net

    1. Vielen Dank für den Tipp. Das hat mir wirklich viel geholfen :)

      gruß,

      Severin