Heim > Artikel > Web-Frontend > Vorsichtsmaßnahmen für die Verwendung des regulären JS-RegExp.test() (nicht repetitiv)
In diesem Artikel werden die Vorsichtsmaßnahmen für die Verwendung des regulären JS-RegExp.test() anhand von Beispielen analysiert. Teilen Sie es als Referenz mit allen:
Sehen Sie sich zunächst den folgenden Code an:
// 2012-12-12 12:12:12 var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g; // true alert(regex.test("2012-12-12 12:12:12")); // false alert(regex.test("2012-12-12 12:12:12"));
Die Ausführungsergebnisse finden Sie bereits in den Codekommentaren. Für denselben regulären Ausdruck kann der Objekt-Regex nicht wiederholt aufgerufen werden: Er gibt beim ersten Mal „true“ und beim zweiten Mal „false“ zurück. Offensichtlich ist dieser Effekt nicht das, was wir wollen. Dies liegt daran, dass die RegExp.test()-Methode die Suche zum ersten Mal bei Position 0 startet und eine Übereinstimmung mit der zweiten Suchposition erzielen kann.
Die Lösung ist ganz einfach: Lassen Sie den Test einfach jedes Mal von der 0. Position beginnen:
// 2012-12-12 12:12:12 var regex = /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/g; // true alert(regex.test("2012-12-12 12:12:12")); regex.lastIndex = 0; // true alert(regex.test("2012-12-12 12:12:12"));
Ich hoffe, dieser Artikel wird für alle hilfreich sein, die sich mit JavaScript-Programmierung befassen.
Weitere Vorsichtsmaßnahmen für die regelmäßige Verwendung von JS RegExp.test() (nicht repetitiv) finden Sie auf der chinesischen PHP-Website!