2016-06-05 12 views
-1

Ich mache einen Timer, der hoch zählt. Es wird eine Basiszeit erstellt und dann wird die Differenz zwischen jetzt und der Basiszeit berechnet.Warum gibt dieser reguläre Ausdruck diese zusätzlichen Zeichen?

Dann mache ich aus diesem Unterschied ein Datum, verwandle es in eine Zeichenfolge und extrahiere die Zeit in Sekunden, Minuten und Stunden daraus.

-Code sieht wie folgt aus:

$scope.time = Date.now() - timeStart; // total elapsed time in ms 
$scope.date = new Date($scope.time); 
$scope.preDisplay = $scope.date.toUTCString(); 
$scope.timeDisplay = $scope.preDisplay.match(/\d+:\d+:\d+/); 

Das Problem $ scope.timeDisplay ist wie diese zeigt nach oben suchen:

["00:00:00"] 

ich nicht, wo die eckigen Klammern und Anführungszeichen kommen von. Das ist in angularjs, wenn ich JS oder JQuery benutze, sind sie nicht da.

Was ist los?

+2

Sie sind überhaupt keine zusätzlichen Zeichen, weil der Wert ein Array ist, wie es 'match()' gibt –

Antwort

4

Die Treffer (.match) geben ein Array übereinstimmender Elemente zurück. Versuchen Sie den Zugriff auf sie die erste 0 th Index mit:

$scope.timeDisplay = $scope.timeDisplay[0]; 
+1

Großartig. Es klappt. –

1

seine hieraus: .match(/\d+:\d+:\d+/);

.match eine Reihe von Übereinstimmungen gibt, in diesem Fall, dass einer, der Zugriff nur direkt über den Index: $scope.timeDisplay[0];

Verwandte Themen