Elmar: Varibalen in Regulären Ausdrücken

Hallo Leute!

Habt Ihr ein Idee wie/ob ich in JavaScript mit Variablen in Regulären Ausdrücken arbeiten kann? Es geht mir um die var floatNumReg und ich hab die Varibalen einfach mal reingeschrieben. Mit eckigen Klammern klappt es leider nicht. Wäre schön, wenn jemand eine Lösung hätte...

Vielen Dank im voraus!

Hier mal ein kleiner Ausschnitt:

// *****************************************
// Float Numbers
// *****************************************

var floatNum = /_floatnum{1}/i;
  var floatNumMust = /_floatnum{1}\*{1}/;

if (floatNum.exec(typinput)){
   index = typinput.indexOf("floatNum");
   index += 9;

var wert1 = typinput.substring(index, (index+2));
   var wert2 = typinput.substring((wert1+1),(wert1+3));
   var endWert1 = parseInt(wert1);
   var endWert2 = parseInt(wert2);

indexi = input.value.indexOf(",");
   var input1 = input.value.substring(0,indexi);
   var input2 = input.value.substring(indexi,100);
   var endInput1 = parseInt(input1);
   var endInput2 = parseInt(input2);

var floatNumReg = /^\d{1,[endWert1]}(((,{1})\d{1,[endWert2]}){0,1})$/;

if ((floatNumReg.exec(input.value)) || (input.value == "")){
    } else if (floatNumMust.exec(typinput)){
      alert("Ihre Eingabe darf nur Fließkomma-Zahlen im Format ["+endWert1+","+endWert2+"] enthalten!");
      setBack(input,form);
     } else if (confirm("Ihre Eingabe darf nur Fließkomma-Zahlen im Format ["+endWert1+","+endWert2+"] enthalten!" + defConfirm)){
       setBack(input,form);
    }
  }

  1. Hallo,

    Habt Ihr ein Idee wie/ob ich in JavaScript mit Variablen in Regulären Ausdrücken arbeiten kann? Es geht mir um die var floatNumReg und ich hab die Varibalen einfach mal reingeschrieben. Mit eckigen Klammern klappt es leider nicht. Wäre schön, wenn jemand eine Lösung hätte...

    In der Netscape JS-Referenz gibt es die erklärung wie man einem
    RegExp (der ein Objekt darstellt!!) per new Operator erzeugt.
    http://developer.netscape.com/docs/manuals/communicator/jsref/corea3.htm
    Diesem Operator werden Strings übergeben. In etwa so:

    var floatNumReg = new RegExp("^\d{1," + endWert1 +"}(((,{1})\d{1,"+ endWert2 +"}){0,1})$", "");

    ungetestet!!

    HTH,

    bye eddie

    1. Danke für den Input an Euch zwei!

  2. Hallo Elmar

    Du kannst dem Konstruktor von RegExp einen String übergeben.
    Beispiel:

    var nr = 5;
    var regexp = new RegExp(floatnum + "+","g");

    entspricht:

    var regexp = /5+/g;

    Grüße

    Daniel