为什么这个正则表达式会给出这些额外的字符?

时间:2016-06-05 20:25:44

标签: javascript jquery angularjs regex

我正在制作一个计时器。创建基准时间,然后计算现在和基准时间之间的差异。

然后我将该差异作为日期,将其转换为字符串并从中提取时间,以秒,分钟和小时为单位。

代码如下所示:

$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+/);

问题是$ scope.timeDisplay显示如下:

["00:00:00"]

我没有得到方括号和引号的来源。这是在angularjs,如果我使用JS或JQuery他们不在那里。

发生了什么事?

2 个答案:

答案 0 :(得分:4)

匹配(#tappos = [0 for x in range(7)] self.tappos = [0 for x in range(7)] ... #tappos[a] = DropDown(root) self.tappos[a] = DropDown(root) # And so on. You get the picture. ... )返回匹配元素的数组。尝试使用第一个.match索引访问它:

0

答案 1 :(得分:1)

来自:tests

.match(/\d+:\d+:\d+/);返回一个匹配数组,在这种情况下是一个,只需使用索引直接访问:.match