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+))?.*

DEMO

用这种方法 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])
    }

DEMO