2015-02-22 2 views
-1

У меня есть следующее регулярное выражение, что я использую в Javascript:REGEX Как получить стартовое время YouTube URL в Javascript

/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*).*/ 

Он получает мне видео ID правильно. Я хочу, чтобы расширить его, чтобы извлечь время начала видео:

Я знаю, что есть по крайней мере два формата (если не более): «T =» и «старт =»

http://youtu.be/xxxxxxxx? т = 30s

https://www.youtube.com/watch?v=xxxxxxxx& старт = 30

спасибо,

+0

Я видел этот пост уже тогда, когда я искал. Мне не нужен весь этот дополнительный код, когда я уже использую regex для получения идентификатора видео. Я хотел бы расширить текущее регулярное выражение. thx –

ответ

3

кажется, что вы хотите что-то вроде этого,

^.*?(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|\&v=)([^#\&\?]*)(?:(\?t|&start)=(\d+))?.* 

DEMO

+1

Спасибо, он работает !! «t» может быть либо «? t», либо «& t», поэтому я добавил OR к вашему ответу, вот что у меня получилось: ^. * (youtu.be \/| v \/| u \ ?/\ ш \/| встраивать \/| часы \ v = | \ & v =) ([^ # \ & \?] *) (?:? (\ т | \ & т | & старт) = (\ d +)) ?. * и может удовлетворить все эти: http://youtu.be/xxxxxxxx?t=30s https://www.youtube.com/watch?v=xxxxxxxx&start=30 HTTPS://www.youtube.com/watch?v=xxxxxxxx&t=70 –

0

Попробуйте путь 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]) 
    } 

enter image description here

DEMO

Смежные вопросы