Ich habe folgende Regex, die auf einem HTML-Element aus einem Daten Attribut kommt:jQuery Regex von String
/^$|^[0-9]{2}.[0-9]{4}$/g
Wenn ich (manuell) tun:
/^$|^[0-9]{2}.[0-9]{4}$/g.test('01.2012');
Es funktioniert und gibt true
.
Wenn habe ich die Regex in einer Variable wie folgt:
var inputRegex = $(this).attr('data-validation');
Und tun:
inputRegex.test(input);
ich:
inputRegex.test ist keine Funktion.
Ich weiß, dass dies, weil inputRegex ein String ist und String keine Testfunktion haben, aber wenn ich ein RegExp-Objekt erstellen (new RegExp($(this).attr('data-validation')
) es bricht mir Regular Expression durch die Flucht:
/\/^$|^[0-9]{2}.[0-9]{4}$\/g/
Wie kann ich den Datenattributwert als regulären Ausdruck verwenden? Bitte beachten Sie, dass ich nicht tun kann: var regex = new RegExp(string, 'g');
, weil die regulären Ausdrücke aus dem Attribut vordefiniert sind.
Sie sollten nicht verwenden '/ g' mit' RegExp.test'. –
Wenn Sie den Wert von 'data-validation' lesen, wird er als String gelesen. Sie können folgenden Link für [wie man Regex von String erstellen] (http://stackoverflow.com/questions/4371565/can-you-create-javascript-regexes-on-the-fly-using-string-variables) – Rajesh
verweisen Das hat nichts mit jQuery zu tun. –