Heim  >  Artikel  >  Web-Frontend  >  Vorsichtsmaßnahmen für die Verwendung des regulären JS-RegExp.test() (nicht repetitiv)

Vorsichtsmaßnahmen für die Verwendung des regulären JS-RegExp.test() (nicht repetitiv)

高洛峰
高洛峰Original
2017-01-09 15:23:361633Durchsuche

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!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn