【发布时间】:2012-03-05 15:57:19
【问题描述】:
我只需要从以下位置提取“40:37.298s”:
Total time: 40:37.298s
使用 JS,但我是 JS 新手,谁能帮忙?
【问题讨论】:
标签: javascript regex parsing logging
我只需要从以下位置提取“40:37.298s”:
Total time: 40:37.298s
使用 JS,但我是 JS 新手,谁能帮忙?
【问题讨论】:
标签: javascript regex parsing logging
> 'Total time: 40:37.298s'.substr(12)
'40:37.298s'
如果您想使用正则表达式以获得更大的灵活性:
> /([0-9]+:[0-9]+\.[0-9]+s)/.exec('Total time: 40:37.298s')[1]
'40:37.298s'
【讨论】:
有很多方法可以做到这一点。这是一个:
var str = "Total time: 40:37.298s";
str.split(": ")[1]
在大多数情况下,我更喜欢在某个已知的枢轴上进行拆分,而不是尝试提取特定的子字符串(如其他人所示),原因如下:
【讨论】:
var time = 'Total time: 40:37.298s';
time = time.match(/\d{1,2}:\d{1,2}\.\d+s/);
【讨论】:
substring 方法就是你要找的:
"Total time: 40:37.298s".substring("Total time: ".length);
【讨论】:
var result = "Total time: 40:37.298s".replace(/^.*([0-9]{2}:[0-9]{2}\.[0-9]{3}s)/g,'$1')
【讨论】:
var item = 'Total time: 40:37.298s';
var pattern = /\d{1,2}\:\d{2}\.\d{3}s/g;
var res = pattern.exec(item);
即:
【讨论】:
.exec() 会将数组中的匹配项分配给res,因此要从上面的代码中获取实际匹配的值,您需要查询res[0]。
我会说使用像[:\.0-9]*s这样的正则表达式
例如
yourText.match("regex")
在你的情况下是
"Total time: 40:37.298s".match("[:\.0-9]*s")[0]
它将返回40:37.298s
【讨论】: