Varibalen in Regulären Ausdrücken
Elmar
- javascript
0 Ed X0 Elmar
0 Daniel Thoma
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);
}
}
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
Danke für den Input an Euch zwei!
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