【发布时间】:2016-03-04 18:17:46
【问题描述】:
我搜索了一种提取t时间参数内容的方法
所以,例如:
https://youtu.be/YykjpeuMNEk?t=2m3s
https://youtu.be/YykjpeuMNEk?t=3s
https://youtu.be/YykjpeuMNEk?t=1h2m3s
我想获取 h、m 和 s 值。
我可以想象我必须使用正则表达式才能完成这项工作,但我找不到正确的表达式字符串(那时的小新手)
我暂时只有这个:
var matches = t.match(/[0-9]+/g);
我用这个工具来测试不同的表达方式,但无法正确格式化并确保内容与 h、m 和 s 完全相关。
如果你有任何想法;)
回答对我有用:
url = 'https://youtu.be/vTs7KXqZRmA?t=2m18s';
var matches = url.match(/\?t=(?:(\d+)h)?(?:(\d+)m)?(\d+)s/i);
var s = 0;
s += matches[1] == undefined ? 0 : (Number(matches[1])*60*60);
s += matches[2] == undefined ? 0 : (Number(matches[2])*60);
s += matches[3] == undefined ? 0 : (Number(matches[3]));
console.log(s);
输出:
138
谢谢大家 ;)
【问题讨论】:
-
感谢@WiktorStribiżew,就像一个魅力!
-
我猜阿努巴瓦的作品也是?如果没有,我会发布我的答案。
-
是的,谢谢@WiktorStribiżew,这几乎是一样的,而且它的工作原理;)干杯!
标签: javascript regex youtube