REGEX 如何在 Javascript 中获取 youtube URL 的开始时间
REGEX How to get start time of youtube URL in Javascript
我在 Javascript 中使用了以下正则表达式:
/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/
它为我正确获取了视频 ID。我想扩展它以提取视频的开始时间:
我知道至少有两种格式(如果不是更多):"t=" 和 "start="
http://youtu.be/xxxxxxxx?t=30s
https://www.youtube.com/watch?v=xxxxxxxx&start=30
谢谢,
看来你想要这样的东西,
^.*?(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*)(?:(\?t|&start)=(\d+))?.*
用这种方法 javascript
var re = /(t=|start=)(?:\d+)/g;
var str = 'http://youtu.be/xxxxxxxx?t=30s\n\nhttps://www.youtube.com/watch?v=xxxxxxxx&start=30';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
alert(eg m[0])
}
我在 Javascript 中使用了以下正则表达式:
/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/
它为我正确获取了视频 ID。我想扩展它以提取视频的开始时间:
我知道至少有两种格式(如果不是更多):"t=" 和 "start="
http://youtu.be/xxxxxxxx?t=30s
https://www.youtube.com/watch?v=xxxxxxxx&start=30
谢谢,
看来你想要这样的东西,
^.*?(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*)(?:(\?t|&start)=(\d+))?.*
用这种方法 javascript
var re = /(t=|start=)(?:\d+)/g;
var str = 'http://youtu.be/xxxxxxxx?t=30s\n\nhttps://www.youtube.com/watch?v=xxxxxxxx&start=30';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
alert(eg m[0])
}